stm32f0: rtc: fix off by one

This commit is contained in:
S.J.R. van Schaik 2017-08-02 00:09:03 +02:00
parent 3bf0593928
commit 66f0b7b0d6

View file

@ -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;