Fixed the conversion to BCD in nvr_at.c, the month of October is no longer written the wrong way in the NVRAM;
Changed the variables in the day of week calculation function in nvr.c from signed to unsigned, fixes the day of week calculation for dates in the previous century.
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* Implement a generic NVRAM/CMOS/RTC device.
|
||||
*
|
||||
* Version: @(#)nvr.c 1.0.6 2018/04/11
|
||||
* Version: @(#)nvr.c 1.0.7 2018/04/29
|
||||
*
|
||||
* Author: Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
*
|
||||
@@ -308,8 +308,8 @@ nvr_period_recalc(void)
|
||||
void
|
||||
nvr_time_get(struct tm *tm)
|
||||
{
|
||||
int8_t dom, mon, sum, wd;
|
||||
int16_t cent, yr;
|
||||
uint8_t dom, mon, sum, wd;
|
||||
uint16_t cent, yr;
|
||||
|
||||
tm->tm_sec = intclk.tm_sec;
|
||||
tm->tm_min = intclk.tm_min;
|
||||
|
||||
@@ -189,7 +189,7 @@
|
||||
* including the later update (DS12887A) which implemented a
|
||||
* "century" register to be compatible with Y2K.
|
||||
*
|
||||
* Version: @(#)nvr_at.c 1.0.6 2018/04/26
|
||||
* Version: @(#)nvr_at.c 1.0.7 2018/04/28
|
||||
*
|
||||
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
* Miran Grca, <mgrca8@gmail.com>
|
||||
@@ -362,9 +362,9 @@ time_set(nvr_t *nvr, struct tm *tm)
|
||||
/* NVR is in BCD data mode. */
|
||||
nvr->regs[RTC_SECONDS] = RTC_BCD(tm->tm_sec);
|
||||
nvr->regs[RTC_MINUTES] = RTC_BCD(tm->tm_min);
|
||||
nvr->regs[RTC_DOW] = (RTC_BCD(tm->tm_wday) + 1);
|
||||
nvr->regs[RTC_DOW] = (RTC_BCD(tm->tm_wday + 1));
|
||||
nvr->regs[RTC_DOM] = RTC_BCD(tm->tm_mday);
|
||||
nvr->regs[RTC_MONTH] = (RTC_BCD(tm->tm_mon) + 1);
|
||||
nvr->regs[RTC_MONTH] = (RTC_BCD(tm->tm_mon + 1));
|
||||
nvr->regs[RTC_YEAR] = RTC_BCD(year % 100);
|
||||
nvr->regs[local->cent] = RTC_BCD(year / 100);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user