Например TDA7294

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





Текущее время: Ср апр 17, 2024 01:19:43

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


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



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

Карма: 138
Рейтинг сообщений: 2712
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 21790
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Притомился искать - решил уточнить у честнОй кампании... :)
Is it correct?
Код:
void ADC_IRQHandler (void) {
   
   if ((ADC1->IER & ADC_IER_ADRDYIE) && (ADC1->ISR & ADC_ISR_ADRDY)) {
      ADC1->ISR |= ADC_ISR_ADRDY;   // флаг сбрасываю правильно?
      
   //бла...бла...бла   
      
   }
}


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

Карма: 20
Рейтинг сообщений: 253
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2090
Рейтинг сообщения: 4
Там же все поля помечены как rc_w1, т.е. очистка записью единицы, ноль ни на что не влияет:
Код:
ADC1->ISR = ADC_ISR_ADRDY;


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

Карма: 36
Рейтинг сообщений: 808
Зарегистрирован: Ср ноя 29, 2017 06:58:50
Сообщений: 2906
Рейтинг сообщения: 0
непонятно, зачем его сбрасывать в 1, если он равен 1


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: STM32F030 ADC Handler CMSIS
СообщениеДобавлено: Чт янв 07, 2021 13:06:26 
Друг Кота
Аватар пользователя

Карма: 138
Рейтинг сообщений: 2712
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 21790
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
зачем его сбрасывать в 1

Цитата:
Bit 0 ADRDY: ADC ready
This bit is set by hardware after the ADC has been enabled (bit ADEN=1) and when the ADC reaches
a state where it is ready to accept conversion requests.
It is cleared by software writing 1 to it.
0: ADC not yet ready to start conversion (or the flag event was already acknowledged and cleared
by software)
1: ADC is ready to start conversion


ноль ни на что не влияет:

Ааа, ну да. Хотя по результату разница только в количестве инструкций.
Спасибо.


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM32F030 ADC Handler CMSIS
СообщениеДобавлено: Чт янв 07, 2021 13:12:27 
Поставщик валерьянки для Кота

Карма: 20
Рейтинг сообщений: 253
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2090
Рейтинг сообщения: 0
Ааа, ну да. Хотя по результату разница только в количестве инструкций.
Спасибо.

Нет, rc_w1 - это read/clear, причем очистка атомарная. Если оставить RMW, то будут прочитаны единицы для всех установленных флагов и, соответственно, сброшены будут тоже ни все, а не только ADRDY.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM32F030 ADC Handler CMSIS
СообщениеДобавлено: Чт янв 07, 2021 13:15:18 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
А я бы ещё никому не нужные проверки выкинул.
Код:
if ((ADC1->IER & ADC_IER_ADRDYIE) && (ADC1->ISR & ADC_ISR_ADRDY))
Вы что, можете попасть в прерывание если оно не разрешено?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F030 ADC Handler CMSIS
СообщениеДобавлено: Чт янв 07, 2021 13:17:04 
Поставщик валерьянки для Кота

Карма: 20
Рейтинг сообщений: 253
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2090
Рейтинг сообщения: 0
Вы что, можете попасть в прерывание если оно не разрешено?

Прерывание одно, флагов много, прерывания включены не для всех, а сами флаги при этом все равно могут выставляться...


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

Карма: -10
Рейтинг сообщений: 93
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1150
Рейтинг сообщения: 0
Ааа, ну да. Хотя по результату разница только в количестве инструкций.

Это не так. Прочитайте в RM описание этого регистра.
Исходя из этого описания, можно понять что:
операция: ADC1->ISR = 1; сбросит в 0 только бит0;
операция: ADC1->ISR |= 1; сбросит в 0 бит0 и все другие биты которые были==1 на момент операции чтения.
Т.е. - во втором случае между делом потеряете также флаги-уведомления о других событиях кроме ADRDY которые успеют установиться до чтения.


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

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
Включаете одно нужное вам для работы.


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

Карма: 36
Рейтинг сообщений: 808
Зарегистрирован: Ср ноя 29, 2017 06:58:50
Сообщений: 2906
Рейтинг сообщения: 0
VladislavS, я тоже об этом подумал, но на самом деле, можно попасть.


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

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
Куда попасть?


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

Карма: 36
Рейтинг сообщений: 808
Зарегистрирован: Ср ноя 29, 2017 06:58:50
Сообщений: 2906
Рейтинг сообщения: 0
в функцию, которую вызывает прерывание.


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

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

PS: Странно что вообще компилятор такое позволяет без варнинга:
if ((ADC1->IER & ADC_IER_ADRDYIE) && (ADC1->ISR & ADC_ISR_ADRDY))
по идее - должен ругнуться на такое. Или ТС игнорирует этот варнинг (а зря!) или регистр периферии определён неправильно. Имха.


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

Карма: 138
Рейтинг сообщений: 2712
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 21790
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Куда попасть?

Попасть впросак. Потому что сегодня мне нужен один флаг, а завтра - еще один.
Проверка разрешений - стандартная процедура в случаях с групповыми прерываниями. Эеономит на спичках тут как то некуртуазно.
Однако всем большое спасибо. Действительно, RMW тут не катит.


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

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
в функцию, которую вызывает прерывание.
Как?


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

Карма: 36
Рейтинг сообщений: 808
Зарегистрирован: Ср ноя 29, 2017 06:58:50
Сообщений: 2906
Рейтинг сообщения: 0
стандартным вызовом. Разве это запрещено?


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

Карма: -10
Рейтинг сообщений: 93
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1150
Рейтинг сообщения: 0
Попасть впросак. Потому что сегодня мне нужен один флаг, а завтра - еще один.
И что? Проверка флага статуса - нужна, бита разрешения - скорей всего нет.


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

Карма: 138
Рейтинг сообщений: 2712
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 21790
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Странно что вообще компилятор такое позволяет без варнинга:
if ((ADC1->IER & ADC_IER_ADRDYIE) && (ADC1->ISR & ADC_ISR_ADRDY))
по идее - должен ругнуться на такое. Или ТС игнорирует этот варнинг (а зря!) или регистр периферии определён неправильно. Имха.

Варнинга нет и быть не может. Регистр периферии определен не мной, а в CMSIS. Мало того, я следую в написании имен по всплывающим подсказкам. Как в именах, так и в константах. Что не так?


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

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
Потому что сегодня мне нужен один флаг, а завтра - еще один.
Вот когда нужен будет, тогда и напишете. А в первом сообщени две избыточных проверки. Одна из которых избыточна при любом количестве используемых флагов.


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

Карма: 138
Рейтинг сообщений: 2712
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 21790
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
бита разрешения - скорей всего нет.

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


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 22


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

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


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