Например TDA7294
Z
Z
Z
2
2
2
2
2
2
16 ? !

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







Текущее время: Вт окт 19, 2021 23:35:36

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


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



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: STM32F030F4P6 прерывания
СообщениеДобавлено: Вс янв 24, 2016 13:46:03 
Первый раз сказал Мяу!

Карма: 3
Рейтинг сообщений: 3
Зарегистрирован: Вс фев 08, 2015 22:00:13
Сообщений: 32
Рейтинг сообщения: 0
Спаял на днях тестовую платку на вышеуказанном камне и начал потихоньку ее мучать. GPIO прошло на ура, все мигало и откликалось на нажатие кнопок.
Перешел к прерываниям. Решил настроить EXTI для кнопки, подключенной к PB1. Как водится, читал статьи по этому вопросу и изучал код из примеров.
Но прерывания не заводились.
Читал вот это:http://www.hertaville.com/external-interrupts-on-the-stm32f0.html
Код инициализации у автора такой

Скачал сниппеты, там вот так выглядит


Но мой код, сделанный по аналогии, вот такой, не работал:

Код:
SYSCFG->EXTICR[0] = SYSCFG_EXTICR1_EXTI1_PB;
EXTI->IMR = EXTI_IMR_MR1;//демаскируем прервание по 1 линии
EXTI->FTSR = EXTI_FTSR_TR1; //прерывание по спаду
EXTI->RTSR = EXTI_RTSR_TR1; //прерывание по фронту 
NVIC_EnableIRQ(EXTI0_1_IRQn);
NVIC_SetPriority(EXTI0_1_IRQn,0);

Благо наткнулся на статью
http://easyelectronics.ru/arm-uchebnyj-kurs-vneshnie-preryvaniya.html
Там:
Цитата:
Но после выяснилось, что без включения AFIO мультиплексоры не работают. Т.е. сигнал будет передаваться ТОЛЬКО от порта А, т.к. это дефолтное значение мультиплексоров.

В моем камне не AFIO , обзывается регистр по другому. Сделал по аналогии.
Добавил в начало инициализации
Код:
RCC->APB2ENR |=RCC_APB2ENR_SYSCFGCOMPEN;// тактирование SYSCFG

И прерывания начали прерывать.
В общем, может пригодится начинающим.


Последний раз редактировалось andrey_spb Вс янв 24, 2016 14:05:26, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32F030F4P6 прерывания
СообщениеДобавлено: Вс янв 24, 2016 13:55:42 
Первый раз сказал Мяу!

Карма: 3
Рейтинг сообщений: 3
Зарегистрирован: Вс фев 08, 2015 22:00:13
Сообщений: 32
Рейтинг сообщения: 0
По прерываниям вопросы.
Мы сбрасываем флаг в обработчике
Код:
EXTI->PR |= EXTI_PR_PR1;

Записываем единицу в нужный бит. Но там ведь уже единица? Не понял смысл
У меня например проверяется прерывание с линии 1 вот так:
Код:
if (EXTI->PR & EXTI_PR_PR1)

Поскольку в моем камне обработчик на две линии 0 и 1, EXTI0_1_IRQHandler.

Еще в вышеуказанной мной статье автор утверждает что:
Цитата:
The next step is to enable the interrupt in the NVIC (Note that its very important to set the interrupt priority before you enable the interrupt). One can do this by setting bit 5 of the NVIC_ISER register. Or alternatively use the CMSIS function "NVIC_EnableIRQ()" which takes the interrupt source position in the table in Figure 1 as a parameter. In our case that's "EXTI0_1_IRQn" or 5.

То есть приоритет нужно установить до включения прерываний. А в сниппетах наоборот
Код:
NVIC_EnableIRQ(EXTI0_1_IRQn); /* (6) */
NVIC_SetPriority(EXTI0_1_IRQn,0); /* (7) */

Как правильно?


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

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

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

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

Не в сети
 Заголовок сообщения: Re: STM32F030F4P6 прерывания
СообщениеДобавлено: Вс янв 24, 2016 14:40:19 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 470
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3788
Рейтинг сообщения: 0
Цитата:
Не понял смысл

из документации:
PRx: Pending bit on line x
This bit is set when the selected edge event arrives on the external interrupt line.
This bit is cleared by writing a 1 to the bit.

тактирование SYSCFG после настройки SYSCFG->EXTICR можно сразу выключить (для экономии :) ):
RCC->APB2ENR |=RCC_APB2ENR_SYSCFGCOMPEN;// тактирование SYSCFG
SYSCFG->EXTICR[0] = SYSCFG_EXTICR1_EXTI1_PB;
RCC->APB2ENR &= ~RCC_APB2ENR_SYSCFGCOMPEN;

приоритет, имхо, все равно в какой последовательности устанавливать - если прерывания появятся во время настройки (наверное это не желательно) ну пусть несколько раз сработают с неправильным приоритетом, потом все нормализуется. В документации (в примере) так же сделано как и в снипетсах.


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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: STM32F030F4P6 прерывания
СообщениеДобавлено: Вс янв 24, 2016 15:05:18 
Первый раз сказал Мяу!

Карма: 3
Рейтинг сообщений: 3
Зарегистрирован: Вс фев 08, 2015 22:00:13
Сообщений: 32
Рейтинг сообщения: 0
oleg110592 писал(а):
Цитата:
Не понял смысл

из документации:
PRx: Pending bit on line x
This bit is set when the selected edge event arrives on the external interrupt line.
This bit is cleared by writing a 1 to the bit.


И?
"Этот бит устанавливается при событии на выбранной линии. Этот бит очищается записью 1 в этот бит."
Именно это я не понял. И даже если еще сто раз скопипастить английский текст из документации, вряд ли пойму.
Я не понял следующее: при прерывании бит устанавливается, то есть там единица. И очищаем его записью единицы. Смысл писать единицу в бит, если она там уже?


Вернуться наверх
 
Новинки склада Компэл – установочные DIP-панели от Connfly: простота и легкость монтажа ИС

Connfly, один из ведущих азиатских производителей стандартных соединителей, и Компэл в рамках партнерской программы по развитию склада представляют установочные панели для микросхем. Панельки серии DS1001-01 выполнены в корпусе Dual In-Line и предназначены для многократного размещения и подключения DIP-интегральных схем в электронные устройства.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM32F030F4P6 прерывания
СообщениеДобавлено: Вс янв 24, 2016 15:46:42 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 470
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3788
Рейтинг сообщения: 0
andrey_spb писал(а):
И даже если еще сто раз скопипастить английский текст из документации, вряд ли пойму

тут, имхо, надо просто принять как должное - просто так сделал производитель микроконтроллера (для примера - в логических схемах триггеры можно было сбрасывать подачей лог. "1" на вход сброса).
Наверное еще более удивит, если придется заниматься USART в STM32, это:
Цитата:
Bit 5 RXNE: Read data register not empty
This bit is set by hardware when the content of the RDR shift register has been transferred to the USARTx_RDR register. It is cleared by a read to the USARTx_RDR register.

Бит RXNE регистра USARTx_ISR сбрасывается при чтении совершенно другого регистра USARTx_RDR - тут вообще никуда не надо записывать ни "0" ни "1" достаточно прочитать данные из приемного регистра, что вполне логично - все равно данные нужны для дальнейшей обработки.


Вернуться наверх
 
Вебинар «Новинки и решения Traco для промышленных и отраслевых приложений» (28.10.2021)

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

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

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


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

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


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

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


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