/*! * @brief RTC IRQ Handler on the RTC Alarm * @param none * @retval none */ void HW_RTC_IrqHandler ( void ) { RTC_HandleTypeDef* hrtc=&RtcHandle; /* enable low power at irq*/ LowPower_Enable( e_LOW_POWER_RTC ); /* Get the AlarmA interrupt source enable status */ if(__HAL_RTC_ALARM_GET_IT_SOURCE(hrtc, RTC_IT_ALRA) != RESET) { /* Get the pending status of the AlarmA Interrupt */ if(__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRAF) != RESET) { /* Clear the AlarmA interrupt pending bit */ __HAL_RTC_ALARM_CLEAR_FLAG(hrtc, RTC_FLAG_ALRAF); /* Clear the EXTI's line Flag for RTC Alarm */ __HAL_RTC_ALARM_EXTI_CLEAR_FLAG(); /* AlarmA callback */ HAL_RTC_AlarmAEventCallback(hrtc); } } }
void RTC_Alarm_IRQHandler(void) { /* RTC Alarm A check */ if (__HAL_RTC_ALARM_GET_IT(&hRTC, RTC_IT_ALRA) != RESET) { /* Clear RTC Alarm A interrupt flag */ __HAL_RTC_ALARM_CLEAR_FLAG(&hRTC, RTC_FLAG_ALRAF); /* Call user function for Alarm A */ TM_RTC_AlarmAHandler(); } /* RTC Alarm B check */ if (__HAL_RTC_ALARM_GET_IT(&hRTC, RTC_IT_ALRB) != RESET) { /* Clear RTC Alarm A interrupt flag */ __HAL_RTC_ALARM_CLEAR_FLAG(&hRTC, RTC_FLAG_ALRBF); /* Call user function for Alarm B */ TM_RTC_AlarmBHandler(); } /* Clear EXTI line 22 bit */ __HAL_RTC_ALARM_EXTI_CLEAR_FLAG(); }