提交 b3f20ff9 编写于 作者: 还_没_想_好's avatar 还_没_想_好 提交者: guo

[drivers][alarm] Fix week alarm bug

上级 f35c9d6d
......@@ -170,11 +170,14 @@ static void alarm_wakeup(struct rt_alarm *alarm, struct tm *now)
case RT_ALARM_WEEKLY:
{
/* alarm at wday */
sec_alarm += alarm->wktime.tm_wday * 24 * 3600;
sec_now += now->tm_wday * 24 * 3600;
if (alarm->wktime.tm_wday == now->tm_wday)
{
sec_alarm += alarm->wktime.tm_wday * 24 * 3600;
sec_now += now->tm_wday * 24 * 3600;
if (((sec_now - sec_alarm) <= RT_ALARM_DELAY) && (sec_now >= sec_alarm))
wakeup = RT_TRUE;
if (sec_now == sec_alarm)
wakeup = RT_TRUE;
}
}
break;
case RT_ALARM_MONTHLY:
......@@ -201,7 +204,8 @@ static void alarm_wakeup(struct rt_alarm *alarm, struct tm *now)
if ((wakeup == RT_TRUE) && (alarm->callback != RT_NULL))
{
timestamp = time(RT_NULL);
timestamp = (time_t)0;
get_timestamp(&timestamp);
alarm->callback(alarm, timestamp);
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册