Code to interface with the MCP7940 Real time clock. Supports getting and setting the time in 24 hour format

MCP7940.h

Committer:
MichaelW
Date:
2015-09-29
Revision:
1:8f330348d96b
Child:
2:941a59078507

File content as of revision 1:8f330348d96b:

#ifndef __MCP7940_H__
#define __MCP7940_H__

#include "mbed.h"

class MCP7940{
public:
MCP7940(PinName sda, PinName scl);
MCP7940(PinName sda, PinName scl, int StartYear);
MCP7940();
    int Day();
    int Month();
    int Year();
    int Hour();
    int Minutes();
    int Seconds();
    int MilliSeconds();
    int DayOfWeek();

    int setTime();    
    int setTime(int Year, int Month, int Day, int Hour, int Mins);
    int setTime(int Year, int Month, int Day, int Hour, int Mins, int Secs);
    int setTime(int Year, int Month, int Day, int Hour, int Mins, int Secs, int MiliSecs);
    int setTime(int Year, int Month, int Day, int Hour, int Mins, int Secs, int MiliSecs, int DayOfWeek);
    
    int setDefaultTime();
    int getTime();
    void StartClock();
    char IntToBCD(char Data);
    char BCDtoInt(char Data);
    
    char * TimeStamp();
    void TimeStamp(char * buf);
    void niceTimeStamp(char * buf);
    void niceDate(char * buf);
    void niceTime(char * buf);
    
    private:
    char _TimeStamp[20];
    int _Day;
    int _Month;
    int _Year;
    int _Hour;
    int _Minutes;
    int _Seconds;  
    int _MilliSeconds;
    int _DayOfWeek;
    
    int _YearStart;
    
    protected:
    I2C Clock;
    
      int _addr;
    
    
};


#endif