33 #ifndef ERRIEZ_DS1307_H_ 34 #define ERRIEZ_DS1307_H_ 40 #define DS1307_REG_SECONDS 0x00 41 #define DS1307_REG_MINUTES 0x01 42 #define DS1307_REG_HOURS 0x02 43 #define DS1307_REG_DAY_WEEK 0x03 44 #define DS1307_REG_DAY_MONTH 0x04 45 #define DS1307_REG_MONTH 0x05 46 #define DS1307_REG_YEAR 0x06 47 #define DS1307_REG_CONTROL 0x07 49 #define DS1307_NUM_REGS 8 52 #define DS1307_SEC_CH 7 54 #define DS1307_HOUR_12H_24H 6 55 #define DS1307_HOUR_AM_PM 5 57 #define DS1307_CTRL_OUT 7 58 #define DS1307_CTRL_SQWE 4 59 #define DS1307_CTRL_RS1 1 60 #define DS1307_CTRL_RS0 0 62 #define DS1307_ADDR (0xD0 >> 1) 93 bool read(
struct tm *dt);
94 bool write(
const struct tm *dt);
95 bool setTime(uint8_t hour, uint8_t min, uint8_t sec);
96 bool getTime(uint8_t *hour, uint8_t *min, uint8_t *sec);
97 bool setDateTime(uint8_t hour, uint8_t min, uint8_t sec,
98 uint8_t mday, uint8_t mon, uint16_t year,
100 bool getDateTime(uint8_t *hour, uint8_t *min, uint8_t *sec,
101 uint8_t *mday, uint8_t *mon, uint16_t *year,
116 bool readBuffer(uint8_t reg,
void *buffer, uint8_t len);
117 bool writeBuffer(uint8_t reg,
void *buffer, uint8_t len);
120 #endif // ERRIEZ_DS1307_H_
#define DS1307_CTRL_SQWE
Square-Wave Enable.
bool read(struct tm *dt)
Read date and time from RTC.
bool readBuffer(uint8_t reg, void *buffer, uint8_t len)
Read buffer from RTC.
uint8_t decToBcd(uint8_t dec)
Decimal to BCD conversion.
bool getDateTime(uint8_t *hour, uint8_t *min, uint8_t *sec, uint8_t *mday, uint8_t *mon, uint16_t *year, uint8_t *wday)
Get date time.
bool write(const struct tm *dt)
Write date and time to RTC.
bool setDateTime(uint8_t hour, uint8_t min, uint8_t sec, uint8_t mday, uint8_t mon, uint16_t year, uint8_t wday)
Set date time.
#define DS1307_CTRL_RS0
Rate Select 0.
bool setSquareWave(SquareWave squareWave)
Configure SQW (Square Wave) output pin.
#define DS1307_CTRL_RS1
Rate Select 1.
uint8_t bcdToDec(uint8_t bcd)
BCD to decimal conversion.
bool getTime(uint8_t *hour, uint8_t *min, uint8_t *sec)
Read time from RTC.
bool setEpoch(time_t t)
Write Unix epoch UTC time to RTC.
SquareWave
Squarewave enum.
bool writeRegister(uint8_t reg, uint8_t value)
Write register.
bool begin()
Initialize and detect DS1307 RTC.
time_t getEpoch()
Read Unix UTC epoch time_t.
bool isRunning()
Read RTC CH (Clock Halt) from seconds register.
bool setTime(uint8_t hour, uint8_t min, uint8_t sec)
Write time to RTC.
uint8_t readRegister(uint8_t reg)
Read register.
bool writeBuffer(uint8_t reg, void *buffer, uint8_t len)
Write buffer to RTC.
bool clockEnable(bool enable=true)
Enable or disable oscillator.