Der DS1307 hat zwar 64 Byte RAM, es können aber nur 56 Byte RAM frei verwendet werden, in den restlichen 8 Byte sind die Zeit, Datum und ein Kontrollregister gespeichert und werden automatisch weitergezählt.
Das RAM befindet sich an den Adressen 0x08 bis 0x3F
Mit Deinem Programm überschereibst Du die Zeit und Datumswerte. Du verlierst somit die Zeit. Das erklährt aber nicht das geschielderte Problem.
Das Datenblatt gibt kein Blockwrite Limit an. Da einzige wenn DU über =x3F kommst incrementiert sich der Adresspointer automatisch zu 00.
Grüße Uwe
Nur wenn ich z.B. Adresse "0" adressiere und dann 64 Bytes lese bekomme ich wie gesagt nur die 32 Byte zwichen 0x00 und 0x1f aus dem NVRAM und dann nur noch "0".
Wenn ich "8" adressiere bekomm ich die 32 Bytes zwischen 0x08 und 0x27 aus dem NVRAM und dann nur "0".
Das hab ich gemeint.
Ich hab mir extra zwei weitere DS1307 bei Watterott bestellt weil ich dachte ich hätte das Teil letzt geröstet (habs dummerweise falschrum angeschlossen nach Versuchen mit einem Chronodot), aber die beiden Neuen reagieren identisch.
Nun bin ich nicht 100%ig sicher ob das an meinem Programm liegt (eben weil ich nichts entsprechendes im Datenblatt finden konnte) und deshalb hier die Frage.