void RTC_SetAlarmFrec(uint8_t hour, uint8_t min, uint8_t sec)
{
uint8_t h=0,m=0,s=0;
RTC_TimeTypeDef gTime = {0};
RTC_DateTypeDef gDate = {0};
HAL_RTC_GetTime(&hrtc, &gTime, RTC_FORMAT_BIN);
HAL_RTC_GetDate(&hrtc, &gDate, RTC_FORMAT_BIN);
if ( (s = (sec + gTime.Seconds) ) > 59 )
{
s = s % 60 ;
++ gTime.Minutes;
}
if ( (m = (min + gTime.Minutes) ) > 59 )
{
m = m % 60 ;
++ gTime.Hours;
}
if ( (h = (hour + gTime.Hours) ) > 23 )
{
h = h % 24 ;
}
RTC_Set_AlarmAtime( h, m, s);
}
|