From 6178325b5bf5bf7721564c25f3bbe9d74385e28c Mon Sep 17 00:00:00 2001 From: Benjamin Valentin Date: Mon, 26 Jul 2021 16:41:46 +0200 Subject: [PATCH] rtt_rtc: fix rtc_get_time_ms() --- drivers/rtt_rtc/rtt_rtc.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/rtt_rtc/rtt_rtc.c b/drivers/rtt_rtc/rtt_rtc.c index 3fb2533ed6..e70fd9691a 100644 --- a/drivers/rtt_rtc/rtt_rtc.c +++ b/drivers/rtt_rtc/rtt_rtc.c @@ -138,17 +138,18 @@ int rtc_set_time(struct tm *time) int rtc_get_time_ms(struct tm *time, uint16_t *ms) { - uint32_t prev = rtc_now; + uint32_t tmp, prev = rtc_now; /* repeat calculation if an alarm triggered in between */ do { uint32_t now = rtt_get_counter(); - uint32_t tmp = _rtc_now(now); + tmp = _rtc_now(now); - rtc_localtime(tmp, time); - *ms = (SUBSECONDS(now) * MS_PER_SEC) / RTT_SECOND; + *ms = (SUBSECONDS(now - last_alarm) * MS_PER_SEC) / RTT_SECOND; } while (prev != rtc_now); + rtc_localtime(tmp, time); + return 0; }