DS1302 hour-Register

Gast #5437995
Hallo,

ich schreibe mir gerade eine Lib für die DS1302-RTC und bekomme ums 
verrecken das hours-Register nicht richtig ausgelesen. Alles Andere 
funktioniert. Ich verwende die RTC im 24h-Modus und mir erschließt sich 
nicht, welche Wertigkeit Bit 5 hat. Ich habe schon mehrere Möglichkeiten 
ausprobiert und lese entweder immer nur 21 Uhr aus oder Werte >24. Im 
Datenblatt (Seite 6) steht: "In the 24-hour mode, bit 5 is the second 
10-hour bit (20–23 hours)". Warum genau "second 10-hour bit"? Im 
Datenblatt steht doch, dass im 24h-Modus nur Bit 5 die Wertigkeit 
10(dec) besitzt?!

Wär klasse, wenn jemand mir das erläutern könnte, welche 
Wertigkeiten(dec) die Bits 5 bis 0 haben.

Besten Dank!
Varadero schrieb:
> ... Ich verwende die RTC im 24h-Modus und mir erschließt sich
> nicht, welche Wertigkeit Bit 5 hat. Ich habe schon mehrere Möglichkeiten
> ausprobiert und lese entweder immer nur 21 Uhr aus oder Werte >24. Im
> Datenblatt (Seite 6) steht: "In the 24-hour mode, bit 5 is the second
> 10-hour bit (20–23 hours)". Warum genau "second 10-hour bit"? Im
> Datenblatt steht doch, dass im 24h-Modus nur Bit 5 die Wertigkeit
> 10(dec) besitzt?!
>
> Wär klasse, wenn jemand mir das erläutern könnte, welche
> Wertigkeiten(dec) die Bits 5 bis 0 haben.
>
> Besten Dank!

Das das BCD-Darstellung (binary coded decimal) ist, ist dir klar?
Hiho,

Das Stunden-Register ist in 2 Nibble (Halfbytes) aufgeteilt.
Also Einerstellen Bit 3-0, Zehenstellen Bit 7-4.

Im 12h Modus braust du Bit 5 ja nicht, daher AM/PM
12 Uhr wäre dann b0001-0010 NICHT!!! b0000-1100
19 Uhr wäre dann b0011-1001 Die erste 1 ist nur der AM/PM Status ;)
10 Uhr wäre dann b0001-0000 NICHT!!! b0000-1010

Die verwenden jeweils 4 bit für Einer- und Zehnerstellen. Ich glaube BCD 
Code funktioniert genauso.

Im 24H-Modus wäre 23 Uhr dann b0010-0011
Weil 0010 = 2 und 0011 = 3

Für 12H-Modus brauchst du ja nur Bit 4 weil du nie über 19 kommst und da 
wird Bit 5 dann nur als Status benutzt.

Schau dir mal BCD-Zahle an, dann kommst du drauf ;)

Achja, erster Absatz zu:
CLOCK/CALENDAR
The time and calendar information is obtained by reading the appropriate 
register bytes. Table 3 illustrates the RTC registers. The time and 
calendar are set or initialized by writing the appropriate register 
bytes. The contents of the time and calendar registers are in the 
binary-coded decimal (BCD) format.

Gruß,
Michi (:
Gast
Dankeschön für die tolle Erklärung!
Das mit der BCD-Codierung war mir bewusst, ich habe nur halt nicht die 
Aufteilung für das hour-Register kapiert. Der Rest läuft ja. Hatte auch 
noch obendrein eine falsche Adresse ausgerechnet. Jetzt kann ich 
schreiben aber die Werte stimmen noch nicht richtig. Heute komme ich da 
nicht mehr hinter, aber morgen wird's dann klappen.

Vielen Dank!

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 8 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.