PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] DS1339 speichert den falschen Tag



Moritz Grosch
28.08.2012, 09:58
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:

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

MagicWSmoke
28.08.2012, 10:32
RTCSetByte(day, 0x04);
Du solltest den umgewandelten Wert senden.

Moritz Grosch
28.08.2012, 10:34
Oh nein .... peinlich :rolleyes:
Danke :D