Hi, ich bin's mal wieder

Ich habe hier auf einer Platine eine DS1339 Echtzeituhr und bin gerade dabei dort Datum und Uhrzeit einzustellen.
Bis auf das setzen des aktuellen Tages funktioniert das auch.

Ich habe diesen Code:
Code:
void RTCSetDay(uint8_t day)
{
    uint8_t byte = day % 10;
    byte |= (day / 10) << 4;
    
    RTCSetByte(day, 0x04);
}
Datum und Uhrzeit schicke ich über UART an den Microcontroller und der gibt es per I²C/TWI weiter an die RTC. Im Microcontroller kommt der richtige Wert an.
Wenn ich die Daten dann wieder von der RTC abfrage, ist der Tag falsch (6 Tage hinterher - heute gibt die immer den 22. zurück, gestern war der 21.). Ich bin mir gerade nicht sicher ob es an der RTC oder an meinem Code liegt.
Jahr, Monat, Stunde, Minute und Sekunde funktionieren btw. wie gewünscht.

Ich hoffe dass ihr mit weiterhelfen könnt

Vielen Dank schonmal im voraus

Grüße,
Moritz