/** * @brief RealTimeClock (RTC) Alarm Interrupt Handler * @return None */ void RTC_ALARM_IRQHandler(void) { uint32_t rtcStatus; /* Get RTC status register */ rtcStatus = Chip_RTC_GetStatus(LPC_RTC); /* Clear only latched RTC status */ Chip_RTC_EnableOptions(LPC_RTC, (rtcStatus & (RTC_CTRL_WAKE1KHZ | RTC_CTRL_ALARM1HZ))); }
/** * @brief RTC Interrupt Handler * @return None */ void RTC_IRQHandler(void) { uint32_t rtcStatus; Board_LED_Toggle(0); /* Get RTC status register */ rtcStatus = Chip_RTC_GetStatus(LPC_RTC); /* Check RTC 1Khz match interrupt */ if (rtcStatus & RTC_CTRL_ALARM1HZ) { /* Alarm */ rtcAlarm = true; } /* Clear only latched RTC status */ Chip_RTC_ClearStatus(LPC_RTC, (rtcStatus & RTC_CTRL_ALARM1HZ)); }
/** * @brief RTC wake interrupt Handler * @return None */ void RTC_WAKE_IRQHandler(void) { uint32_t rtcStatus; Board_LED_Toggle(0); /* Get RTC status register */ rtcStatus = Chip_RTC_GetStatus(LPC_RTC); /* Check RTC 1KHz match interrupt */ if (rtcStatus & RTC_CTRL_WAKE1KHZ) { /* RTC high resultiuon wakeup interrupt */ rtcWake = true; } /* Clear only latched RTC wake status */ Chip_RTC_EnableOptions(LPC_RTC, rtcStatus & RTC_CTRL_WAKE1KHZ); }