Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Прерывание от PE13
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Vladislav_Minsk
Добрый день.
Организовать прерывание от лапы PA0 получилось. Решил попробовать от PE13 и столкнулся с непонятными явлениями.
При отладке в регистрах отчётливо водно что при появлении 1 на лапе PE13 флаг в регистре прерываний устанавливается, через некоторое время сам сбрасывается, но перехода к функции обработчику прерывания не происходит.
Тактирование настроено точно, лапы настроены точно.
вот куски программы, в которых я сомневаюсь:
/* PE13 configuration interrupt set */
SYSCFG->EXTICR[3] |= (0x4<<4); // PE ports input set
EXTI->IMR |= (1<<13); // MR13 interrupt request from line 13 is not masked
EXTI->RTSR |= (1<<13); // TR13 rising trigger enabled for input line
NVIC_EnableIRQ(EXTI3_IRQn); // EXTI3 interrupt enable
А вот сама функция:
/* Function for PE13 interrupt event */
void EXTI3_IRQHandler(void)
{
GPIOE->ODR |= (1<<4); // PE4 set 1
return; // return in main programm
}
Писал EXTI3_IRQn, а не EXTI4_IRQn, потому что их как оказалось 5 штук начиная с 0:
EXTI0_IRQn = 6, /*!< EXTI Line0 Interrupt */
EXTI1_IRQn = 7, /*!< EXTI Line1 Interrupt */
EXTI2_IRQn = 8, /*!< EXTI Line2 Interrupt */
EXTI3_IRQn = 9, /*!< EXTI Line3 Interrupt */
EXTI4_IRQn = 10, /*!< EXTI Line4 Interrupt
В общем не понимаю, что происходит, может кто-нибудь попробует сформировать прерывание на этой ноге...
Flexz
Почему вы вообще решили что прерывание от 13 ноги придет на вектор EXTI3_IRQn, EXTI4_IRQn? Должно быть EXTI15_10_IRQn
Vladislav_Minsk
Да, вчера перед уходом с работы обнаружил ещё варианты в стартапе...) Ниже не пролистал... Там же необходимо выбрать линию прерывания а не группу линий...) Всё исправил и заработало...)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.