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