Updated Adafruit Library
Fork of Adafruit_RTCLib by
DateTime.h@0:7f90c8e04249, 2012-07-17 (annotated)
- Committer:
- nkhorman
- Date:
- Tue Jul 17 05:49:20 2012 +0000
- Revision:
- 0:7f90c8e04249
land the adafruit rtc library with changes for LPC1768
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
nkhorman | 0:7f90c8e04249 | 1 | // Code by JeeLabs http://news.jeelabs.org/code/ |
nkhorman | 0:7f90c8e04249 | 2 | // Released to the public domain! Enjoy! |
nkhorman | 0:7f90c8e04249 | 3 | |
nkhorman | 0:7f90c8e04249 | 4 | /* |
nkhorman | 0:7f90c8e04249 | 5 | * Taken from https://github.com/adafruit/RTClib |
nkhorman | 0:7f90c8e04249 | 6 | * and modified for LPC1768 by Neal Horman July 2012 |
nkhorman | 0:7f90c8e04249 | 7 | */ |
nkhorman | 0:7f90c8e04249 | 8 | |
nkhorman | 0:7f90c8e04249 | 9 | #ifndef _DATETIME_H_ |
nkhorman | 0:7f90c8e04249 | 10 | #define _DATETIME_H_ |
nkhorman | 0:7f90c8e04249 | 11 | |
nkhorman | 0:7f90c8e04249 | 12 | #include "mbed.h" |
nkhorman | 0:7f90c8e04249 | 13 | |
nkhorman | 0:7f90c8e04249 | 14 | // Simple general-purpose date/time class (no TZ / DST / leap second handling!) |
nkhorman | 0:7f90c8e04249 | 15 | class DateTime |
nkhorman | 0:7f90c8e04249 | 16 | { |
nkhorman | 0:7f90c8e04249 | 17 | public: |
nkhorman | 0:7f90c8e04249 | 18 | DateTime (uint32_t t =0); |
nkhorman | 0:7f90c8e04249 | 19 | DateTime (uint16_t year, uint8_t month, uint8_t day, uint8_t hour =0, uint8_t min =0, uint8_t sec =0); |
nkhorman | 0:7f90c8e04249 | 20 | DateTime (const char* date, const char* time); |
nkhorman | 0:7f90c8e04249 | 21 | uint16_t year() const { return 2000 + yOff; } |
nkhorman | 0:7f90c8e04249 | 22 | uint8_t month() const { return m; } |
nkhorman | 0:7f90c8e04249 | 23 | uint8_t day() const { return d; } |
nkhorman | 0:7f90c8e04249 | 24 | uint8_t hour() const { return hh; } |
nkhorman | 0:7f90c8e04249 | 25 | uint8_t minute() const { return mm; } |
nkhorman | 0:7f90c8e04249 | 26 | uint8_t second() const { return ss; } |
nkhorman | 0:7f90c8e04249 | 27 | uint8_t dayOfWeek() const; |
nkhorman | 0:7f90c8e04249 | 28 | |
nkhorman | 0:7f90c8e04249 | 29 | // 32-bit times as seconds since 1/1/1970 |
nkhorman | 0:7f90c8e04249 | 30 | uint32_t unixtime(void) const; |
nkhorman | 0:7f90c8e04249 | 31 | |
nkhorman | 0:7f90c8e04249 | 32 | protected: |
nkhorman | 0:7f90c8e04249 | 33 | uint8_t yOff, m, d, hh, mm, ss; |
nkhorman | 0:7f90c8e04249 | 34 | }; |
nkhorman | 0:7f90c8e04249 | 35 | |
nkhorman | 0:7f90c8e04249 | 36 | #ifdef WANT_RTC_MILLIS |
nkhorman | 0:7f90c8e04249 | 37 | // RTC using the internal millis() clock, has to be initialized before use |
nkhorman | 0:7f90c8e04249 | 38 | // NOTE: this clock won't be correct once the millis() timer rolls over (>49d?) |
nkhorman | 0:7f90c8e04249 | 39 | class RTC_Millis |
nkhorman | 0:7f90c8e04249 | 40 | { |
nkhorman | 0:7f90c8e04249 | 41 | public: |
nkhorman | 0:7f90c8e04249 | 42 | static void begin(const DateTime& dt) { adjust(dt); } |
nkhorman | 0:7f90c8e04249 | 43 | static void adjust(const DateTime& dt); |
nkhorman | 0:7f90c8e04249 | 44 | static DateTime now(); |
nkhorman | 0:7f90c8e04249 | 45 | |
nkhorman | 0:7f90c8e04249 | 46 | protected: |
nkhorman | 0:7f90c8e04249 | 47 | static long offset; |
nkhorman | 0:7f90c8e04249 | 48 | }; |
nkhorman | 0:7f90c8e04249 | 49 | #endif |
nkhorman | 0:7f90c8e04249 | 50 | |
nkhorman | 0:7f90c8e04249 | 51 | #endif |