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.
Dependents: Hotboards_rtcc_manual_timedate Hotboards_rtcc_timeSpan Hotboards_rtcc_alarm Hotboards_rtcc_compiler_timedate ... more
Hotboards_rtcc.h
00001 /* 00002 Hotboards_rtcc.cpp - Library to read, write and control the real time clock MCP7941x included in rtc board. 00003 http://hotboards.org 00004 adapted and Taken from https://github.com/adafruit/RTClib 00005 Released into the public domain. 00006 */ 00007 00008 #ifndef Hotboards_rtcc_h 00009 #define Hotboards_rtcc_h 00010 00011 #include "mbed.h" 00012 00013 class TimeSpan; 00014 00015 class DateTime 00016 { 00017 public: 00018 DateTime( uint32_t t = 0 ); 00019 DateTime( uint16_t year, uint8_t month, uint8_t day, 00020 uint8_t hour = 0, uint8_t min = 0, uint8_t sec = 0, uint8_t dweek = 0 ); 00021 DateTime( const DateTime& copy ); 00022 DateTime( const char* date, const char* time ); 00023 uint16_t year() const { return 2000 + yOff; } 00024 uint8_t month() const { return m; } 00025 uint8_t day() const { return d; } 00026 uint8_t hour() const { return hh; } 00027 uint8_t minute() const { return mm; } 00028 uint8_t second() const { return ss; } 00029 uint8_t dweek( void ) const { return ss; } 00030 uint8_t dayOfTheWeek( void ) const; 00031 // 32-bit times as seconds since 1/1/2000 00032 uint32_t secondstime( void ) const; 00033 // 32-bit times as seconds since 1/1/1970 00034 uint32_t unixtime( void ) const; 00035 DateTime operator+(const TimeSpan& span); 00036 DateTime operator-(const TimeSpan& span); 00037 TimeSpan operator-(const DateTime& right); 00038 00039 00040 protected: 00041 uint8_t yOff, m, d, dw, hh, mm, ss; 00042 }; 00043 00044 // Timespan which can represent changes in time with seconds accuracy. 00045 class TimeSpan 00046 { 00047 public: 00048 TimeSpan (int32_t seconds = 0); 00049 TimeSpan (int16_t days, int8_t hours, int8_t minutes, int8_t seconds); 00050 TimeSpan (const TimeSpan& copy); 00051 int16_t days() const { return _seconds / 86400L; } 00052 int8_t hours() const { return _seconds / 3600 % 24; } 00053 int8_t minutes() const { return _seconds / 60 % 60; } 00054 int8_t seconds() const { return _seconds % 60; } 00055 int32_t totalseconds() const { return _seconds; } 00056 00057 TimeSpan operator+(const TimeSpan& right); 00058 TimeSpan operator-(const TimeSpan& right); 00059 00060 protected: 00061 int32_t _seconds; 00062 }; 00063 00064 class Hotboards_rtcc 00065 { 00066 public: 00067 Hotboards_rtcc( I2C &i2c ); 00068 void begin( void ); 00069 void adjust( const DateTime &dt ); 00070 DateTime now( void ); 00071 uint8_t isrunning( void ); 00072 void setVBAT( uint8_t OnOff ); 00073 void setAlarm( const DateTime &dt, uint8_t alarm = 0 ); 00074 uint8_t getAlarmStatus( uint8_t alarm = 0 ); 00075 void clearAlarm( uint8_t alarm = 0 ); 00076 void turnOnAlarm( uint8_t alarm = 0 ); 00077 void turnOffAlarm( uint8_t alarm = 0 ); 00078 00079 protected: 00080 I2C _i2c; 00081 uint8_t on_off; 00082 00083 void stop( void ); 00084 uint8_t readReg( uint8_t address ); 00085 void writeReg( uint8_t address, uint8_t val ); 00086 uint8_t bcd2bin( uint8_t val ); 00087 uint8_t bin2bcd( uint8_t val ); 00088 00089 }; 00090 00091 00092 #endif 00093
Generated on Sat Jul 16 2022 02:47:13 by
1.7.2
Hotboards RTCC