RealTimeClock RTC-8564 library.
Rtc8564.h@0:ebc5f6d47cf5, 2014-02-22 (annotated)
- Committer:
- togayan
- Date:
- Sat Feb 22 23:58:05 2014 +0000
- Revision:
- 0:ebc5f6d47cf5
1st Release.
Who changed what in which revision?
User | Revision | Line number | New 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 |