Frage zu Binär und i2c bus?
Warum werden die ersten zwei bzw ersten drei mit x ersetzt? Und wie kommt man dann auf die 14 bzw 12?
3 Antworten
![](https://images.gutefrage.net/media/user/atoemlein/1449969626178_nmmslarge__2_2_160_160_9d6e83572066d75044787955170af0d4.png?v=1449969626000)
Hey, du scheinst ein paar gehörige Lücken in den Grundlagen der Digitaltechnik zu haben, bei all deinen Fragen. Das solltest du nachholen.
X sind sogenannte "Don't Care"s.
Das heisst, dass der Wert dieses Bits in dem Moment oder dieser Anwendung keine Rolle spielt.
Zu deinem Fall:
Die Zahlen sind offenbar im BCD-Code für Tag und Monat codiert (jede Ziffer wird einzeln codiert z.B.: 1 = 0001, 4 = 0100) .
- Monat 12 = Da ein Jahr nur 12 Monate hat, kann die erste Ziffer des Monats nur 0 oder 1 sein, deshalb sind die vordersten drei Bits egal und werden nicht ausgewertet
- Da ein Monat maximal 31 Tage hat, kann die erste Ziffer höchstens 3 sein, was binär 11 wäre; deshalb werden die vordersten zwei Bits nicht ausgewertet und sind egal.
![](https://images.gutefrage.net/media/default/user/13_nmmslarge.png?v=1551279448000)
Sieh im Datenblatt nach was in den Registern steht.
Bei Adresse 5 sind die ersten 2 Bit das Jahr dad ist dir für den Tag egal daher beachte die einfach nicht.
Die nächsten beiden Stellen also 01 sind die Zener also 1 und die nächsten 4 Stellen (0100) die Einer also 4
Somit ergibt es Tag 14
![](https://images.gutefrage.net/media/user/LUKEars/1688884434588_nmmslarge__286_19_475_475_15d0473a58ff40db30b377787d357510.jpg?v=1688884435000)
also BCD Code, nachdem man ein paar MSB (da wo ein X ist) durch Nullen ersetzt hat?
![](https://images.gutefrage.net/media/default/user/13_nmmslarge.png?v=1551279448000)
Nein es sind 2 Bit für das Jahr, 2 Bit für die Zenerstelle und 4 Bit für den Tag.
Also es ist zwar BCD aber das Jahr hat nur 2 Bit und nicht 4 und die Zenerstelle hat auch nur 2 Bit und nicht 4.
Technisch könntest du es aber natürlich so umsetzen wie du sagst. Aber allgemein werden X nicht einfach durch 0 ersetzt sondern gar nicht verwendet.
Wenn du es in Hardware machst bedeutet es, dass diese Ausgänge nirgendwo angeschlossen wären.
![](https://images.gutefrage.net/media/default/user/11_nmmslarge.png?v=1551279448000)
X heißt, der konkrete Wert an dieser Stelle ist egal. Es kann eine 1 oder 0 sein und du musst das Ergebnis ignorieren.
Also der Chip dürfte dir als Tag auch 11010100 zurückliefern, es bleibt trotzdem Tag 14.
Der Speicherbereich bietet einfach 4 Bits an dieser Stelle bzw. 8 Bit als gesamtes, doch genutzt wird nicht der gesamte Speicherbereich. Das MSB und MSB -1 würde man bei einer vernünftigen Programmierung durchaus mit Nullen füllen beim Initialisieren, wenngleich die Funktion zur Konstruktion des Datums die Werte dort eh nicht berücksichtigen würde.