Например TDA7294

Форум РадиоКот • Просмотр темы - STM32F030 ADC Handler CMSIS
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Чт авг 21, 2025 07:34:26

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 27 ]    , 2
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: STM32F030 ADC Handler CMSIS
СообщениеДобавлено: Чт янв 07, 2021 13:31:34 
Собутыльник Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 430
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2539
Рейтинг сообщения: 0
стандартным вызовом. Разве это запрещено?
С дуру и хрен сломать можно.

Добавлено after 1 minute 50 seconds:
Вообще то я пользуюсь практикой SPL, не прибегая к ней самой. Там все выглядит именно так - проверка разрешения && проверка флага - сброс флага - обработчик.
Куда полезней своей головой пользоваться.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F030 ADC Handler CMSIS
СообщениеДобавлено: Чт янв 07, 2021 13:34:24 
Говорящий с текстолитом

Карма: -9
Рейтинг сообщений: 175
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1530
Рейтинг сообщения: 0
Что не так?
Имха - неопределённый порядок чтения volatile-регистров.
Хотя возможно тут зависит от компилятора.... :dont_know:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F030 ADC Handler CMSIS
СообщениеДобавлено: Чт янв 07, 2021 13:44:45 
Собутыльник Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 430
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2539
Рейтинг сообщения: 0
jcxz, вы абсолютно правы. Правая часть && не будет выполнена, если левая false. Это значит чтения из ADC1->ISR не произойдёт. А такое чтение, для некоторых периферийных устройств может менять состояние флагов.
Код:
//void ADC_IRQHandler (void)
//{
//  if ((ADC1->IER & ADC_IER_ADRDYIE) && (ADC1->ISR & ADC_ISR_ADRDY))
        MOV      R0,#+1342177280
        LDR      R1,[R0, #+4]
        LSLS     R2,R1,#+31
        BPL.N    ??ADC_IRQHandler_0
        LDR      R1,[R0, #+0]
        LSLS     R2,R1,#+31
        ITT      MI
//    ADC1->ISR = ADC_ISR_ADRDY;
        MOVMI    R1,#+1
        STRMI    R1,[R0, #+0]
//}
??ADC_IRQHandler_0:
        BX       LR               ;; return


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F030 ADC Handler CMSIS
СообщениеДобавлено: Чт янв 07, 2021 13:54:12 
Говорящий с текстолитом

Карма: -9
Рейтинг сообщений: 175
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1530
Рейтинг сообщения: 0
Правая часть && не будет выполнена, если левая false. Это значит чтения из ADC1->ISR не произойдёт. А такое чтение, для некоторых периферийных устройств может менять состояние флагов.

Я о чём и говорю. Поэтому думаю - или у ТС в свойствах проекта выставлено подавление варнингов, или он просто не обращает внимания на них при компиляции или регистры определены неверно (без volatile) или ...?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F030 ADC Handler CMSIS
СообщениеДобавлено: Чт янв 07, 2021 14:18:48 
Собутыльник Кота

Карма: 36
Рейтинг сообщений: 808
Зарегистрирован: Ср ноя 29, 2017 06:58:50
Сообщений: 2906
Рейтинг сообщения: 0
А разве на это выдаются предупреждение? Возможное невыполнение части условия - стандартное поведение, о котором просто надо помнить.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F030 ADC Handler CMSIS
СообщениеДобавлено: Чт янв 07, 2021 14:25:38 
Говорящий с текстолитом

Карма: -9
Рейтинг сообщений: 175
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1530
Рейтинг сообщения: 0
А разве на это выдаются предупреждение? Возможное невыполнение части условия - стандартное поведение, о котором просто надо помнить.
Лучше в начале ISR прочитать регистр флагов прерываний в локальную переменную и работать уже ней.
Да и не нужно многократно читать эти флаги (если обрабатывается несколько разными ветками алгоритма).


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F030 ADC Handler CMSIS
СообщениеДобавлено: Чт янв 07, 2021 14:39:21 
Собутыльник Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 430
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2539
Рейтинг сообщения: 0
Поэтому думаю - или у ТС в свойствах проекта выставлено подавление варнингов, или он просто не обращает внимания на них при компиляции или регистры определены неверно (без volatile) или ...?
Не, всё у него верно определено. Описания регистров из CMSIS взяты. Компиляторы действительно молчат.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 27 ]    , 2

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: AlanDrakes и гости: 10


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y