mirror of
https://github.com/utkumaden/esp-idf-ds3231.git
synced 2025-04-20 02:31:31 +02:00
Fix implementation to follow tm_year correctly.
This commit is contained in:
parent
0d1a8e4252
commit
a7ebcab6a4
@ -250,7 +250,7 @@ DS3231_API int ds3231_getTime(ds3231_t driver, struct tm *time)
|
|||||||
time->tm_wday = rtime[3];
|
time->tm_wday = rtime[3];
|
||||||
time->tm_mday = BCD_TO_DEC(rtime[4]);
|
time->tm_mday = BCD_TO_DEC(rtime[4]);
|
||||||
time->tm_mon = BCD_TO_DEC((rtime[5] & 0x1F)) - 1;
|
time->tm_mon = BCD_TO_DEC((rtime[5] & 0x1F)) - 1;
|
||||||
time->tm_year = 2000 + BCD_TO_DEC(rtime[6]) + ((rtime[5] & (1 << 7)) ? 100 : 0);
|
time->tm_year = 100 + BCD_TO_DEC(rtime[6]) + ((rtime[5] & (1 << 7)) ? 100 : 0);
|
||||||
ds3231_fill_yday(time);
|
ds3231_fill_yday(time);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -272,7 +272,7 @@ DS3231_API int ds3231_setTime(ds3231_t driver, const struct tm *time)
|
|||||||
rtime[2] = DEC_TO_BCD(time->tm_hour);
|
rtime[2] = DEC_TO_BCD(time->tm_hour);
|
||||||
rtime[3] = time->tm_wday;
|
rtime[3] = time->tm_wday;
|
||||||
rtime[4] = DEC_TO_BCD(time->tm_mday);
|
rtime[4] = DEC_TO_BCD(time->tm_mday);
|
||||||
rtime[5] = DEC_TO_BCD(time->tm_mon + 1) + ((time->tm_year >= 2100) ? (1 << 7) : 0);
|
rtime[5] = DEC_TO_BCD(time->tm_mon + 1) + ((time->tm_year >= 200) ? (1 << 7) : 0);
|
||||||
rtime[6] = DEC_TO_BCD(time->tm_year % 100);
|
rtime[6] = DEC_TO_BCD(time->tm_year % 100);
|
||||||
if (ds3231_io_write(driver->port, DS3231_REGISTER_SECONDS, rtime, sizeof rtime))
|
if (ds3231_io_write(driver->port, DS3231_REGISTER_SECONDS, rtime, sizeof rtime))
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user