6 #if defined(ARDUINO) || defined(DOXYGEN) 10 #include "../common/util.h" 11 #include "HardwareDateTime.h" 12 #include "HardwareTemperature.h" 17 using common::bcdToDec;
18 using common::decToBcd;
23 Wire.beginTransmission(kAddress);
25 Wire.endTransmission();
28 Wire.requestFrom(kAddress, (uint8_t) 7);
29 dateTime->second = bcdToDec(Wire.read() & 0x7F);
30 dateTime->minute = bcdToDec(Wire.read());
31 dateTime->hour = bcdToDec(Wire.read() & 0x3F);
33 dateTime->day = bcdToDec(Wire.read());
34 dateTime->month = bcdToDec(Wire.read());
35 dateTime->year = bcdToDec(Wire.read());
39 Wire.beginTransmission(kAddress);
41 Wire.endTransmission();
43 Wire.requestFrom(kAddress, (uint8_t) 2);
44 temperature->msb = Wire.read();
45 temperature->lsb = Wire.read();
49 Wire.beginTransmission(kAddress);
51 Wire.write(decToBcd(dateTime.second));
52 Wire.write(decToBcd(dateTime.minute));
53 Wire.write(decToBcd(dateTime.hour));
54 Wire.write(decToBcd(dateTime.dayOfWeek));
55 Wire.write(decToBcd(dateTime.day));
56 Wire.write(decToBcd(dateTime.month));
57 Wire.write(decToBcd(dateTime.year));
58 Wire.endTransmission();
void readDateTime(HardwareDateTime *dateTime) const
Read the time into the HardwareDateTime object.
void readTemperature(HardwareTemperature *temperature) const
Read the temperature into the HardwareTemperature object.
The temperature in Celcius as a signed (8.8) fixed-point integer.
void setDateTime(const HardwareDateTime &dateTime) const
Set the DS3231 with the HardwareDateTime values.
The date (year, month, day) and time (hour, minute, second) fields supported by the DS3231 RTC chip...