#include <Wire.h>
byte
setupData[1] = { 0b00010000 },
iniData[3] = { 0b01011001, 0b01011001, 0b00100011 };
void writeData(byte addr, byte *bytes, int n) {
Wire.beginTransmission(0b1101000);
Wire.write(addr);
Wire.write(bytes, n);
Wire.endTransmission();
}
void readData(byte addr, byte *bytes, int n) {
Wire.beginTransmission(0b1101000);
Wire.write(addr);
Wire.endTransmission();
Wire.requestFrom(0b1101000, 3);
for (int i = 0; i < n; ++i)
bytes[i] = Wire.read();
}
void updateTime() {
byte timeData[3] = {0};
readData(0b00000000, timeData, 3);
Serial.print(((timeData[2] & 0b00110000) >> 4) * 10 + (timeData[2] & 0b00001111));
Serial.print(":");
Serial.print(((timeData[1] & 0b01110000) >> 4) * 10 + (timeData[1] & 0b00001111));
Serial.print(":");
Serial.println(((timeData[0] & 0b01110000) >> 4) * 10 + (timeData[0] & 0b00001111));
}
void setup() {
Serial.begin(115200);
Wire.begin();
writeData(0b00000111, setupData, 1);
writeData(0b00000000, iniData, 3);
}
void loop() {
updateTime();
delay(1000);
}