Pseudo real-time clock using Ticker interruption, also implements time() and set_time() for platforms that don't (such as mBuino)
Fork of PseudoRTC by
Revision 3:c8bfeb8a2989, committed 2015-08-03
- Comitter:
- maxint
- Date:
- Mon Aug 03 10:29:25 2015 +0000
- Parent:
- 2:7d153bc7403f
- Commit message:
- bugfix; month was one off (note: tm_mon in struct tm is 0 to 11, month in PseudoRTC is 1-12!)
Changed in this revision
PseudoRTC.cpp | Show annotated file Show diff for this revision Revisions of this file |
PseudoRTC.h | Show annotated file Show diff for this revision Revisions of this file |
diff -r 7d153bc7403f -r c8bfeb8a2989 PseudoRTC.cpp --- a/PseudoRTC.cpp Mon Aug 03 09:04:48 2015 +0000 +++ b/PseudoRTC.cpp Mon Aug 03 10:29:25 2015 +0000 @@ -59,7 +59,7 @@ minute=ptm->tm_min; hour=ptm->tm_hour; day=ptm->tm_mday; - month=ptm->tm_mon; + month=ptm->tm_mon+1; year=ptm->tm_year+1900; } @@ -125,7 +125,7 @@ tms.tm_min=minute; tms.tm_hour=hour; tms.tm_mday=day; - tms.tm_mon=month; + tms.tm_mon=month-1; tms.tm_year=year-1900; return(mktime(&tms)); }
diff -r 7d153bc7403f -r c8bfeb8a2989 PseudoRTC.h --- a/PseudoRTC.h Mon Aug 03 09:04:48 2015 +0000 +++ b/PseudoRTC.h Mon Aug 03 10:29:25 2015 +0000 @@ -30,9 +30,17 @@ * * main() * { - * // Example: September 20, 2014, 21:05:30 - * c.setTime(2014, 09, 20, 21, 05, 30); - * + * time_t seconds; + * char buffer[32]; + * c.set_time(1256729737); // Set RTC time to Wed, 28 Oct 2009 11:35:37 (NOW WORKING ON mBuino) + * + * seconds=c.time(NULL); + * printf("Time as seconds since January 1, 1970 = %d\r\n", seconds); + * printf("Time as a basic string = %s\r", ctime(&seconds)); // ctime includes \n + * strftime(buffer, 32, "%I:%M %p", localtime(&seconds)); + * printf("Time as a custom formatted string = %s\r\n", buffer); + * + * c.setTime(2014, 09, 20, 21, 05, 30); // Second example: September 20, 2014, 21:05:30 * while(true) { * printf("%04d/%02d/%02d %02d:%02d:%02d\r\m", c.getYear(), c.getMonth(), c.getDay(), c.getHour(), c.getMinute(), c.getSecond()); * wait(1); @@ -51,11 +59,11 @@ /** Set time in the pseudo real-time clock * @param y Year - * @param mo Month - * @param d Day - * @param h Hour - * @param m Minute - * @param s Second + * @param mo Month (1-12) + * @param d Day (1-31) + * @param h Hour (0-23) + * @param m Minute (0-59) + * @param s Second (0-59) */ void setTime(int y, int mo, int d, int h, int mi, int s);