Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Revision 17:bdc15c054ac1, committed 2015-01-24
- Comitter:
- vtraveller
- Date:
- Sat Jan 24 15:59:29 2015 +0000
- Parent:
- 16:f7e4b4cbfb9e
- Commit message:
- Fixed bug where tm struct used a month range of 0-11 and the DS3231 uses a range 1-12.
Changed in this revision
RTclock.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/RTclock.cpp Thu Oct 09 14:04:25 2014 +0000 +++ b/RTclock.cpp Sat Jan 24 15:59:29 2015 +0000 @@ -32,6 +32,7 @@ m_bTwelveHour = ((aBuffer[2] & 0x40) == 0x40); out_sTM.tm_sec = bcdToDecimal(aBuffer[0] & 0x7f); + out_sTM.tm_min = bcdToDecimal(aBuffer[1]); if (m_bTwelveHour) @@ -47,10 +48,10 @@ { out_sTM.tm_hour = bcdToDecimal(aBuffer[2] & 0x3f); } - - out_sTM.tm_wday = aBuffer[3] % 7; - out_sTM.tm_mday = bcdToDecimal(aBuffer[4]); - out_sTM.tm_mon = bcdToDecimal(aBuffer[5]); + + out_sTM.tm_wday = aBuffer[3] % 7; + out_sTM.tm_mday = bcdToDecimal(aBuffer[4]); + out_sTM.tm_mon = bcdToDecimal(aBuffer[5]) - 1; out_sTM.tm_year = (bcdToDecimal(aBuffer[6]) + 2000) - 1900; // Returns from 2000, need form 1900 for time function out_sTM.tm_isdst = 0; @@ -104,7 +105,7 @@ aBuffer[2] = (aBuffer[2] & 0xc4) | (decimalToBcd(nHour) & 0x3f); aBuffer[3] = in_sTM.tm_wday; aBuffer[4] = decimalToBcd(in_sTM.tm_mday); - aBuffer[5] = decimalToBcd(in_sTM.tm_mon); + aBuffer[5] = decimalToBcd(in_sTM.tm_mon + 1); aBuffer[6] = decimalToBcd(in_sTM.tm_year + 1900 - 2000); // Handle the 12hr clock bits @@ -128,7 +129,7 @@ aBuffer[2] = decimalToBcd(nHour) & (m_bTwelveHour ? 0x1f : 0x3f); aBuffer[3] = in_sTM.tm_wday; aBuffer[4] = decimalToBcd(in_sTM.tm_mday); - aBuffer[5] = decimalToBcd(in_sTM.tm_mon) & ~0x80 /* 2000+ */; + aBuffer[5] = decimalToBcd(in_sTM.tm_mon + 1) & ~0x80 /* 2000+ */; aBuffer[6] = decimalToBcd(in_sTM.tm_year + 1900 - 2000); // Handle the 12hr clock bits