DS3231
Diff: DS3231.cpp
- Revision:
- 16:610f7091e0ac
- Parent:
- 15:bf11392ccaea
--- a/DS3231.cpp Thu Mar 28 09:55:44 2019 +0000 +++ b/DS3231.cpp Sat May 08 16:13:55 2021 +0000 @@ -1,8 +1,10 @@ #include "DS3231.h" DS3231::DS3231(PinName sda, PinName scl) : i2c(sda, scl) - { - } +{ + w_adrs = ((DS3231_I2C_ADRS << 1) | I2C_WRITE); + r_adrs = ((DS3231_I2C_ADRS << 1) | I2C_READ); +} // BCD to decimal conversion @@ -135,4 +137,17 @@ bool DS3231::OSF() {int reg=readRegister(DS3231_Control_Status); return(reg&DS3231_bit_OSF); - } \ No newline at end of file + } + +uint16_t DS3231::set_cntl_stat_reg(ds3231_cntl_stat_t data) +{ + uint8_t local_data[] = {0,0,0}; + uint8_t data_length = 0; + + local_data[data_length++] = CONTROL; + local_data[data_length++] = data.control; + local_data[data_length++] = data.status; + + //users responsibility to make sure data is logical + return(i2c.write(w_adrs,(const char*) local_data, data_length)); +} \ No newline at end of file