From 66f0b7b0d6ab0a897f13bb447f2bf3a5cd253486 Mon Sep 17 00:00:00 2001 From: "S.J.R. van Schaik" Date: Wed, 2 Aug 2017 00:09:03 +0200 Subject: [PATCH] stm32f0: rtc: fix off by one --- source/platform/stm32f0/rtc.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/source/platform/stm32f0/rtc.c b/source/platform/stm32f0/rtc.c index cf2eb65..66457bd 100644 --- a/source/platform/stm32f0/rtc.c +++ b/source/platform/stm32f0/rtc.c @@ -60,7 +60,6 @@ int rtc_get_time(struct tm *time) time->tm_min += (unsigned char)(((rtc_tr >> 12) & 0xF) * 10); time->tm_hour = (unsigned char)((rtc_tr >> 16) & 0xF); time->tm_hour += (unsigned char)(((rtc_tr >> 20) & 0xF) * 10); - time->tm_hour -= 1; time->tm_mday = (unsigned char)(rtc_dr & 0xF); time->tm_mday += (unsigned char)(((rtc_dr >> 4) & 0x3) * 10); @@ -82,7 +81,6 @@ static int rtc_set_time(struct tm *time) if (!time) return -1; - hour = time->tm_hour + 1; mon = time->tm_mon + 1; year = time->tm_year - 100; @@ -90,8 +88,8 @@ static int rtc_set_time(struct tm *time) rtc_tr |= (time->tm_sec / 10) << 4; rtc_tr |= (time->tm_min % 10) << 8; rtc_tr |= (time->tm_min / 10) << 12; - rtc_tr |= (hour % 10) << 16; - rtc_tr |= (hour / 10) << 20; + rtc_tr |= (time->tm_hour % 10) << 16; + rtc_tr |= (time->tm_hour / 10) << 20; rtc_dr = (time->tm_mday % 10); rtc_dr |= (time->tm_mday / 10) << 4;