stm32f0: rtc: fix off by one
This commit is contained in:
parent
c6afcd1027
commit
2b1d401296
1 changed files with 13 additions and 9 deletions
|
@ -60,11 +60,13 @@ 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);
|
||||
time->tm_mon = (unsigned char)((rtc_dr >> 8) & 0xF);
|
||||
time->tm_mon += (unsigned char)(((rtc_dr >> 12) & 0x1) * 10);
|
||||
time->tm_mon -= 1;
|
||||
time->tm_year = (unsigned char)((rtc_dr >> 16) & 0xF);
|
||||
time->tm_year += (unsigned char)(((rtc_dr >> 20) & 0xF) * 10);
|
||||
time->tm_year += 100;
|
||||
|
@ -75,24 +77,26 @@ int rtc_get_time(struct tm *time)
|
|||
static int rtc_set_time(struct tm *time)
|
||||
{
|
||||
uint32_t rtc_tr, rtc_dr;
|
||||
uint32_t year;
|
||||
uint32_t hour, mon, year;
|
||||
|
||||
if (!time)
|
||||
return -1;
|
||||
|
||||
hour = time->tm_hour + 1;
|
||||
mon = time->tm_mon + 1;
|
||||
year = time->tm_year - 100;
|
||||
|
||||
rtc_tr = (time->tm_sec % 10);
|
||||
rtc_tr |= (time->tm_sec / 10) << 4;
|
||||
rtc_tr |= (time->tm_min % 10) << 8;
|
||||
rtc_tr |= (time->tm_min / 10) << 12;
|
||||
rtc_tr |= (time->tm_hour % 10) << 16;
|
||||
rtc_tr |= (time->tm_hour / 10) << 20;
|
||||
rtc_tr = (time->tm_sec % 10);
|
||||
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_dr = (time->tm_mday % 10);
|
||||
rtc_dr |= (time->tm_mday / 10) << 4;
|
||||
rtc_dr |= (time->tm_mon % 10) << 8;
|
||||
rtc_dr |= (time->tm_mon / 10) << 12;
|
||||
rtc_dr |= (mon % 10) << 8;
|
||||
rtc_dr |= (mon / 10) << 12;
|
||||
rtc_dr |= (year % 10) << 16;
|
||||
rtc_dr |= (year / 10) << 20;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue