From 7d849b41e7de907a8d458f7e7282733fe32d6110 Mon Sep 17 00:00:00 2001 From: Rahix <rahix@rahix.de> Date: Sat, 17 Aug 2019 08:53:24 +0200 Subject: [PATCH] fix(rtc): Trigger immediately if alarm is scheduled in the past Signed-off-by: Rahix <rahix@rahix.de> --- epicardium/modules/rtc.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/epicardium/modules/rtc.c b/epicardium/modules/rtc.c index a72ffe8f..8aa2e3f6 100644 --- a/epicardium/modules/rtc.c +++ b/epicardium/modules/rtc.c @@ -58,6 +58,15 @@ int epic_rtc_schedule_alarm(uint32_t timestamp) { int res; + /* + * Check if the timestamp lies in the past and if so, trigger + * immediately. + */ + if (epic_rtc_get_seconds() >= timestamp) { + api_interrupt_trigger(EPIC_INT_RTC_ALARM); + return 0; + } + NVIC_EnableIRQ(RTC_IRQn); while ((res = RTC_SetTimeofdayAlarm(MXC_RTC, timestamp)) == E_BUSY) -- GitLab