Например TDA7294

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



Текущее время: Вс май 09, 2021 07:25:55

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


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



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

Карма: 115
Рейтинг сообщений: 2070
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 16224
Откуда: Московская область
Рейтинг сообщения: 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 
Это не хвост, это антенна

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


Вернуться наверх
 

JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Отличное качество, подтвержденное более чем 600,000 пользователей! Более 10,000 заказов в день.

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/cwc

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

Карма: 36
Рейтинг сообщений: 801
Зарегистрирован: Ср ноя 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 
Друг Кота
Аватар пользователя

Карма: 115
Рейтинг сообщений: 2070
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 16224
Откуда: Московская область
Рейтинг сообщения: 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


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

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


Вернуться наверх
 
Обновленный ассортимент тактовых кнопок Omron!

Компэл предлагает обновленный ассортимент миниатюрных тактовых кнопок производства компании Omron, который включает в себя разнообразные решения как для стандартных условий, так и для применения в условиях повышенной влажности.

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

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

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


Вернуться наверх
 
Вебинар «Экосистема MEAN WELL. Решения для любых задач электропитания» (20.05.2021)

Приглашаем 20 мая на вебинар, посвященный линейке поставок компании MEAN WELL и ее подходу к производству источников питания — как экосистемы продукции и услуг, которая позволяет подобрать оптимальный источник питания для любых задач электропитания. Рассмотрим весь спектр выпускаемой продукции MEAN WELL в области AC/DC-, DC/DC- и DC/AC-преобразователей с подробным разбором интересных и уникальных новинок, их применении и многое другое.

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

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


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: STM32F030 ADC Handler CMSIS
СообщениеДобавлено: Чт янв 07, 2021 13:17:04 
Это не хвост, это антенна

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

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


Вернуться наверх
 


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

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

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


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

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


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

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


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

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


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

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


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

Карма: -17
Рейтинг сообщений: 11
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 625
Рейтинг сообщения: 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 
Друг Кота
Аватар пользователя

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

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


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

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


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

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


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

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


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

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

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


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

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


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

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

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


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

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


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

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


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

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


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