Adafruit_RTCLib

Fork of Adafruit_RTCLib by Neal Horman

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?

UserRevisionLine numberNew 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