RealTimeClock RTC-8564 library.

Dependents:   LcdClock

Committer:
togayan
Date:
Sat Feb 22 23:58:05 2014 +0000
Revision:
0:ebc5f6d47cf5
1st Release.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
togayan 0:ebc5f6d47cf5 1 #ifndef RTC_8564_H
togayan 0:ebc5f6d47cf5 2 #define RTC_8564_H
togayan 0:ebc5f6d47cf5 3
togayan 0:ebc5f6d47cf5 4 #include "mbed.h"
togayan 0:ebc5f6d47cf5 5 #include "DebouncedEdgeIn/DebouncedEdgeIn.h"
togayan 0:ebc5f6d47cf5 6 #include "FunctionPointer.h"
togayan 0:ebc5f6d47cf5 7
togayan 0:ebc5f6d47cf5 8 class Rtc8564
togayan 0:ebc5f6d47cf5 9 {
togayan 0:ebc5f6d47cf5 10 public:
togayan 0:ebc5f6d47cf5 11 Rtc8564(I2C& i2c, PinName clockIn, PinMode pull);
togayan 0:ebc5f6d47cf5 12
togayan 0:ebc5f6d47cf5 13 void initialize();
togayan 0:ebc5f6d47cf5 14 void setTime(struct tm* dateTime);
togayan 0:ebc5f6d47cf5 15 void getTime(struct tm* dateTime);
togayan 0:ebc5f6d47cf5 16
togayan 0:ebc5f6d47cf5 17 /** Attach a function to call at the timing of every second
togayan 0:ebc5f6d47cf5 18 *
togayan 0:ebc5f6d47cf5 19 * @param fptr A pointer to a void function, or 0 to set as none
togayan 0:ebc5f6d47cf5 20 */
togayan 0:ebc5f6d47cf5 21 void clock(void (*fptr)(void));
togayan 0:ebc5f6d47cf5 22
togayan 0:ebc5f6d47cf5 23 /** Attach a member function to call at the timing of every second
togayan 0:ebc5f6d47cf5 24 *
togayan 0:ebc5f6d47cf5 25 * @param tptr pointer to the object to call the member function on
togayan 0:ebc5f6d47cf5 26 * @param mptr pointer to the member function to be called
togayan 0:ebc5f6d47cf5 27 */
togayan 0:ebc5f6d47cf5 28 template<typename T>
togayan 0:ebc5f6d47cf5 29 void clock(T* tptr, void (T::*mptr)(void)) {
togayan 0:ebc5f6d47cf5 30 m_clockFp.attach(tptr, mptr);
togayan 0:ebc5f6d47cf5 31 }
togayan 0:ebc5f6d47cf5 32
togayan 0:ebc5f6d47cf5 33 private:
togayan 0:ebc5f6d47cf5 34 bool checkVoltageLow();
togayan 0:ebc5f6d47cf5 35 void clockRise();
togayan 0:ebc5f6d47cf5 36
togayan 0:ebc5f6d47cf5 37 I2C& m_i2c;
togayan 0:ebc5f6d47cf5 38 DebouncedEdgeIn m_clockIn;
togayan 0:ebc5f6d47cf5 39 FunctionPointer m_clockFp;
togayan 0:ebc5f6d47cf5 40 };
togayan 0:ebc5f6d47cf5 41
togayan 0:ebc5f6d47cf5 42 #endif // RTC_8564_H