Nel frattempo ho provato anche la lettura/scrittura della data:
void setDate()
{
Wire.beginTransmission(0x68);
Wire.write(3); // <--- punta al registro
Wire.write(gioSet); // 1..7 (1=LUN)
Wire.write(binBCD(gioMes)); // 1..31
Wire.write(binBCD(mes)); // 1..12 (1=GEN)
Wire.write(binBCD(anno)); // 00..99
Wire.endTransmission();
}
void readDate()
{
Wire.beginTransmission(0x68);
Wire.write(3); // <--- punta al registro
Wire.endTransmission();
Wire.requestFrom(0x68, 4); // <--- legge
gioSet = Wire.read();
gioMes = BCDbin(Wire.read());
mes = BCDbin(Wire.read());
anno = BCDbin(Wire.read());
}
Dove 'gioSet', gioMes', 'mes', 'anno' sono variabili globali.
C'è solo un bit che andrà a 1 alla mezzanotte del 31/12/2099, ma credo lo possiamo ignorare.