Verständnisfrage DS1307 Zeitformat

OP #3015966
Lesenswert?

Hallo!

Ich bin gerade etwas verwirrt im Bezug auf die Timekeeper Registers des 
DS1307.

Das Register sieht folgend aus:

Adress   Bit7  Bit 6  Bit 5  Bit 4  Bit 3  Bit 2  Bit 1  Bit 0
01h      | 0 | |    10 Minutes    | |           Minutes       |


Wie soll ich das verstehen? Können die Bits 0-3 (Minutes) den Wert 0-9 
oder 0-15 annehmen? Und die Bits 6-4 müssen mal 10 genommen werden, oder 
ist es einfach eine stinknormale binäre Codierung?

Gruß
Mathias
#3015993
Lesenswert?

Mathias S. schrieb:
> Hallo!
>
> Ich bin gerade etwas verwirrt im Bezug auf die Timekeeper Registers des
> DS1307.
>
> Das Register sieht folgend aus:
>
> Adress   Bit7  Bit 6  Bit 5  Bit 4  Bit 3  Bit 2  Bit 1  Bit 0
> 01h      | 0 | |    10 Minutes    | |           Minutes       |
>
>
> Wie soll ich das verstehen? Können die Bits 0-3 (Minutes) den Wert 0-9
> oder 0-15 annehmen? Und die Bits 6-4 müssen mal 10 genommen werden, oder
> ist es einfach eine stinknormale binäre Codierung?

Das ist BCD
Stell dir die Zahl als Hex-Zahl vor

  0x10   sind   10 Minuten
  0x18   sind   18 Minuten
  0x45   sind   45 Minuten

auf die Art muss man nicht lange rumrechnen, wenn man nur auf eine 
Ausgabe ausgeben will. Das Byte in seine beiden Nibble zerlegen. Zu 
jedem Nibble noch '0' addieren und ab gehts an das Terminal.

Wenn du rechnen musst:
wieder in die Nibbles zerlegen.
  Minuten = HighNibble * 10 + LowNibble;

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren