Пробую прерывания в EFM32TG210. Пакет IAR 6.3 Код настройки:
//_______*** RTC ***_______ /* Enable RTC clock */ CMU->LFACLKEN0 |= CMU_LFACLKEN0_RTC; RTC->IEN |= RTC_IEN_COMP0; RTC->CTRL = RTC_CTRL_COMP0TOP | RTC_CTRL_DEBUGRUN; RTC->COMP0 = 0x10000; RTC->IFC = RTC_IFC_COMP0; NVIC_EnableIRQ(RTC_IRQn); RTC->CTRL |= RTC_CTRL_EN;
Хандлер:
void RTC_IRQHandler(void); { int current_time, next_time; RTC->IFC = RTC_IFC_COMP0; RTC->COMP0 = 0x10000;
GPIO->P[1].DOUT = (( 1<< 13) & (~(GPIO->P[1].DOUT))); }
В дебугере вхожу в хандлер по шагам F11, процесс "зависает" - вернее начинает бежать не по шагам, как будто F5 нажал, когда останавливаешь, то в дизассемблере всякие BusFault_Handler, DebugMon_Handler, HardFault_Handler и т.д. Я прерывания не так настраиваю?
|