Forum: Mikrocontroller und Digitale Elektronik Verständnisfrage DS1307 Zeitformat


von Mathias S. (merzi1993)


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

von Nico (nico123)


Lesenswert?

Wenn ich mich recht erinnere, dann ist es einfach binär (also die 
Minuten gehen von 0 bis 9). Alles andere macht auch keinen Sinn!

von Karl H. (kbuchegg)


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;

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.