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.
Fork of ds3231 by
Diff: ds3231.cpp
- Revision:
- 5:61dfe2690360
- Parent:
- 4:0beb5e9ac927
- Child:
- 6:e8850ad15893
diff -r 0beb5e9ac927 -r 61dfe2690360 ds3231.cpp
--- a/ds3231.cpp Thu Nov 20 22:16:15 2014 +0000
+++ b/ds3231.cpp Fri Nov 28 02:36:26 2014 +0000
@@ -647,6 +647,73 @@
/**********************************************************//**
+* Get epoch time based on current RTC time and date.
+* DS3231 must be configured and running before this fx is
+* called
+*
+* On Entry:
+*
+* On Exit:
+* @return return value = epoch time
+*
+* Example:
+* @code
+*
+* //instantiate rtc object
+* Ds3231 rtc(D14, D15);
+*
+* time_t epoch_time;
+*
+* epoch_time = rtc.get_epoch();
+*
+* @endcode
+**************************************************************/
+time_t Ds3231::get_epoch(void)
+{
+ //system vars
+ struct tm sys_time;
+
+ //RTC vars
+ ds3231_time_t rtc_time;
+ ds3231_calendar_t rtc_calendar;
+
+ get_calendar(&rtc_calendar);
+ get_time(&rtc_time);
+
+ sys_time.tm_wday = rtc_calendar.day - 1;
+ sys_time.tm_mday = rtc_calendar.date;
+ sys_time.tm_mon = rtc_calendar.month - 1;
+ sys_time.tm_year = rtc_calendar.year + 100;
+
+ //check for 12hr or 24hr mode
+ if(rtc_time.mode)
+ {
+ //check am/pm
+ if(rtc_time.am_pm && (rtc_time.hours != 12))
+ {
+ sys_time.tm_hour = rtc_time.hours + 12;
+ }
+ else
+ {
+ sys_time.tm_hour = rtc_time.hours;
+ }
+
+ }
+ else
+ {
+ //24hr mode
+ sys_time.tm_hour = rtc_time.hours;
+ }
+
+ sys_time.tm_min = rtc_time.minutes;
+ sys_time.tm_sec = rtc_time.seconds;
+
+ //make epoch time
+ return(mktime(&sys_time));
+}
+
+
+/**********************************************************//**
* Private mmber fx, converts unsigned char to BCD
*
* On Entry:
