/** * @brief main routine for ATIMER example * @return Nothing (function should not exit) */ int main(void) { bool On = false; SystemCoreClockUpdate(); Board_Init(); /* Init Alarm Timer with Preset Count for about 1s */ Chip_ATIMER_Init(LPC_ATIMER, PresetCount); /* Init EVRT */ Chip_EVRT_Init(); /* Enable EVRT in order to be able to read the ATIMER interrupt */ Chip_EVRT_ConfigIntSrcActiveType(EVRT_SRC_ATIMER, EVRT_SRC_ACTIVE_HIGH_LEVEL); /* Enable Alarm Timer Source */ Chip_EVRT_SetUpIntSrc(EVRT_SRC_ATIMER, ENABLE); /* Enable NVIC */ NVIC_EnableIRQ(EVENTROUTER_IRQn); /* Clear the interrupt states */ ATIMER_ClearInts(); /* Enable Alarm Timer */ Chip_ATIMER_IntEnable(LPC_ATIMER); while (1) { /* Sleep until ATIMER fires */ __WFI(); On = (bool) !On; Board_LED_Set(1, On); } }
/** * Event Router configure function */ static void PMC_Evrt_Configure(CHIP_EVRT_SRC_T Evrt_Src) { /* Configure Interrupt signal from Evrt_Src pin to EVRT */ Chip_EVRT_ConfigIntSrcActiveType(Evrt_Src, EVRT_SRC_ACTIVE_RISING_EDGE); /* Enable interrupt signal from Evrt_Src pin to EVRT */ Chip_EVRT_SetUpIntSrc(Evrt_Src, ENABLE); /* Clear any pending interrupt */ Chip_EVRT_ClrPendIntSrc(Evrt_Src); /* Disable EVRT interrupt in NVIC */ NVIC_DisableIRQ(EVENTROUTER_IRQn); /* preemption = 1, sub-priority = 1 */ NVIC_SetPriority(EVENTROUTER_IRQn, ((0x01 << 3) | 0x01)); /* Enable Event Router interrupt in NVIC */ NVIC_EnableIRQ(EVENTROUTER_IRQn); }