#include #include #include void rtc_alarm_isr(void) { exti_reset_request(EXTI17); if (rtc_check_flag(RTC_ALR)) { rtc_clear_flag(RTC_ALR); rtc_set_alarm_time(rtc_get_counter_val() + 10); EXTI_IMR |= EXTI17; exti_set_trigger(EXTI17, EXTI_TRIGGER_RISING); } } int alarm_init(void) { rtc_enable_alarm(); rtc_set_alarm_time(rtc_get_counter_val() + 10); nvic_enable_irq(NVIC_RTC_ALARM_IRQ); EXTI_IMR |= EXTI17; exti_set_trigger(EXTI17, EXTI_TRIGGER_RISING); return 0; }