Прерывание с ножки

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
O'NeiLL
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Чт сен 05, 2013 18:23:31

Прерывание с ножки

Сообщение O'NeiLL »

Ребят объясните как инициализировать прерывание например по фронту от порта PC0. Желательно с примером.

Работаю с платой STM32VLDISCOVERY

P.S. новичок в теме, особо не мурчите на меня
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Re: Прерывание с ножки

Сообщение uk8amk »

Надо выполнить следующее:
разрешить тактирование AFIO В APB2ENR
настроить GPIO на цифровой вход
выбрать порт и линию прерывания в AFIO_EXTICR
сконифигурировать региcтры EXTI:
Interrupt mask register (EXTI_IMR)
Rising trigger selection register (EXTI_RTSR)
Falling trigger selection register (EXTI_FTSR)
Включить канал EXTI в NVIC.

Для VLDISCOVERY есть архив с CMSIS и примерами кода на сайте ST.
O'NeiLL
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Чт сен 05, 2013 18:23:31

Re: Прерывание с ножки

Сообщение O'NeiLL »

а можете пояснить что значат эти регистры и как формируются?
Rising trigger selection register (EXTI_RTSR)
Falling trigger selection register (EXTI_FTSR)
Аватара пользователя
Jeka_M
Встал на лапы
Сообщения: 101
Зарегистрирован: Пт окт 03, 2014 14:50:06

Re: Прерывание с ножки

Сообщение Jeka_M »

Это триггеры по возрастающему (rising) и спадающему (falling) фронту. То есть, можно настроить прерывание по возрастающему фронту, спадающему фронту или сразу по обоим фронтам. В этих регистрах нужно записать 1 в определённый бит TR (в зависимости от ножки на которой прерывание). Подробное описание регистров есть в референс мануале (Reference Manual).

Вот статейки ещё почитайте, информации в интернете достаточно.
ARM. Учебный курс. Внешние прерывания
ARM. Учебный Курс. Прерывания и NVIC — приоритетный контроллер прерываний
Обработка нажатия пользовательской кнопки, используя внешние прерывания
Прерывания в STM32
STM32–Контроллер внешних прерываний(событий)
Ответить

Вернуться в «ARM»