From 49a5bfb9e55098f32e654c2b21161b2b8310404a Mon Sep 17 00:00:00 2001 From: Marian Buschsieweke Date: Tue, 30 Mar 2021 14:48:03 +0200 Subject: [PATCH 1/2] tests/periph_rtt: be more verbose on error If `rtt_get_alarm()` doesn't return the correct value, print expected and return value to ease debugging. --- tests/periph_rtt/main.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/periph_rtt/main.c b/tests/periph_rtt/main.c index 8e9ac8de0f..59b74442c9 100644 --- a/tests/periph_rtt/main.c +++ b/tests/periph_rtt/main.c @@ -93,8 +93,10 @@ int main(void) printf("Setting initial alarm to now + 5 s (%" PRIu32 ")\n", last); rtt_set_alarm(last, cb, 0); - if (rtt_get_alarm() != last) { - puts("Error: rtt_get_alarm() not working"); + uint32_t tmp = rtt_get_alarm(); + if (tmp != last) { + printf("Error: rtt_get_alarm() not working (expected %" PRIu32 " but got %" PRIu32 ")\n", + last, tmp); return 1; } else { From d816666d84025b55a1b9aef569ed82c5034d6d8f Mon Sep 17 00:00:00 2001 From: Marian Buschsieweke Date: Tue, 30 Mar 2021 14:49:11 +0200 Subject: [PATCH 2/2] cpu/sam3/periph_rtt: fix rtt_get_alarm() Previously, the return value was off by one. --- cpu/sam3/periph/rtt.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cpu/sam3/periph/rtt.c b/cpu/sam3/periph/rtt.c index 2c7d0da245..2da87e712c 100644 --- a/cpu/sam3/periph/rtt.c +++ b/cpu/sam3/periph/rtt.c @@ -75,7 +75,8 @@ void rtt_set_alarm(uint32_t alarm, rtt_cb_t cb, void *arg) uint32_t rtt_get_alarm(void) { if (RTT->RTT_MR & RTT_MR_ALMIEN) { - return RTT->RTT_AR; + /* the alarm value is RTT_AR + 1, see rtt_set_alarm() */ + return RTT->RTT_AR + 1; } return 0; }