/* Set the alarm A Masks */
RTC_AlarmStructure.RTC_AlarmMask = RTC_AlarmMask_All;
RTC_AlarmStructure.RTC_AlarmDateWeekDaySel = RTC_AlarmDateWeekDaySel_Date;
RTC_AlarmStructure.RTC_AlarmDateWeekDay = RTC_Weekday_Monday;
RTC_AlarmStructure.RTC_AlarmTime.RTC_Hours = 0x0;
RTC_AlarmStructure.RTC_AlarmTime.RTC_Minutes =0x0;
RTC_AlarmStructure.RTC_AlarmTime.RTC_Seconds =0x0;
RTC_SetAlarm(RTC_Format_BCD, RTC_Alarm_A, &RTC_AlarmStructure);
/* Set alarm A sub seconds and enable SubSec Alarm : generate 8 interrupts per Second */
RTC_AlarmSubSecondConfig(RTC_Alarm_A, 0xFF, RTC_AlarmSubSecondMask_SS14_5);
/* Enable alarm A interrupt */
RTC_ITConfig(RTC_IT_ALRA, ENABLE);
}
void RTC_Alarm_IRQHandler(void)
{
if(RTC_GetITStatus(RTC_IT_ALRA) != RESET) /* Check on the Alarm A flag and on the number of interrupts per Second (60*8) */
{
/* Clear RTC AlarmA Flags */
RTC_ClearITPendingBit(RTC_IT_ALRA);
}
EXTI_ClearITPendingBit(EXTI_Line17); /* Clear the EXTI line 17 */
}