| Zeile 76: | Zeile 76: | ||
! Beschreibung | ! Beschreibung | ||
|- | |- | ||
| − | | 7 || Zeit-Update-Zyklus (1 = Update läuft | + | | 7 || Zeit-Update-Zyklus (1 = Update läuft => Zeitangaben undefiniert) |
|- | |- | ||
| − | | 6-4 || Zeit- | + | | 6-4 || Zeit-Basis (Standard = 010b = 32768 Hz) |
|- | |- | ||
| − | | 3-0 || Auswahl-Bits für | + | | 3-0 || Auswahl-Bits für Interrupt-Rate |
0000b = kein Interrupt | 0000b = kein Interrupt | ||
0011b = alle 122 Mikrosekunden (minimum) | 0011b = alle 122 Mikrosekunden (minimum) | ||
| Zeile 97: | Zeile 97: | ||
! Beschreibung | ! Beschreibung | ||
|- | |- | ||
| − | | 7 || Zeit-Update (0 = | + | | 7 || Zeit-Update (0 = Zeit aktualisieren, 1 = Zeit-update anhalten) |
|- | |- | ||
| − | | 6 || Periodischer Interrupt (0 = deaktiviert (Standard), 1 = aktiviert) | + | | 6 || Periodischer Interrupt mit Rate aus Statusregister A (0 = deaktiviert (Standard), 1 = aktiviert) |
|- | |- | ||
| − | | 5 || Alarm Interrupt (0 = deaktiviert (Standard), 1 = aktiviert) | + | | 5 || Alarm Interrupt wenn Uhrzeit = Alarmzeit (0 = deaktiviert (Standard), 1 = aktiviert) |
|- | |- | ||
| − | | 4 || Update | + | | 4 || Update-Interrupt (0 = deaktiviert (Standard), 1 = aktiviert) |
|- | |- | ||
| − | | 3 || Rechtecks-Frequenz (0 = deaktiviert (Standard), 1 = aktiviert) | + | | 3 || Rechtecks-Frequenz mit Rate aus Statusregister A erzeugen (0 = deaktiviert (Standard), 1 = aktiviert) |
|- | |- | ||
| − | | 2 || Daten Modus (0 = BCD, 1 = | + | | 2 || Daten Modus (0 = BCD, 1 = Binär) |
|- | |- | ||
| − | | 1 || 24 | + | | 1 || 24 Stundenformat (0 = 12 Stunden, 1 = 24 Stunden (Standard)) |
|- | |- | ||
| 0 || Sommerzeit (0 = deaktiviert (Standard), 1 = aktiviert) | | 0 || Sommerzeit (0 = deaktiviert (Standard), 1 = aktiviert) | ||
| + | |} | ||
| + | </center> | ||
| + | <br> | ||
| + | |||
| + | |||
| + | === 0x0C - Statusregister C === | ||
| + | <center> | ||
| + | {| border="1" cellspacing="0" | ||
| + | |- | ||
| + | ! Bit | ||
| + | ! Beschreibung | ||
| + | |- | ||
| + | | 7 || Interrupt-Request (1 = RTC hat Interrupt angefordert) | ||
| + | |- | ||
| + | | 6 || IRQ-Quelle ist periodischer Interrupt (0 = nein, 1 = ja) | ||
| + | |- | ||
| + | | 5 || IRQ-Quelle ist Alarm-Interrupt (0 = nein, 1 = ja) | ||
| + | |- | ||
| + | | 4 || IRQ-Interrupt ist Update-Interrupt (0 = nein, 1 = ja) | ||
| + | |- | ||
| + | | 3-0 || Reserviert | ||
| + | |} | ||
| + | </center> | ||
| + | <br> | ||
| + | |||
| + | |||
| + | === 0x0D - Statusregister D=== | ||
| + | <center> | ||
| + | {| border="1" cellspacing="0" | ||
| + | |- | ||
| + | ! Bit | ||
| + | ! Beschreibung | ||
| + | |- | ||
| + | | 7 || Gültigkeit der Daten im CMOS (0 = ungültig, 1 = Daten sind gültig) | ||
| + | |- | ||
| + | | 6-0 || Reserviert | ||
|} | |} | ||
</center> | </center> | ||
| Zeile 118: | Zeile 154: | ||
== Programmierung == | == Programmierung == | ||
| − | Die Programmierung des CMOS ist denkbar einfach: Die | + | Die Programmierung des CMOS ist denkbar einfach: Die sieben niederwertigen Bits des I/O Ports 0x70 dienen als Offset (siehe Tabelle). Das höchste Bit sollte nicht verändert werden, es dient als NMI-Markierungsregister. Durch Lesen bzw. Schreiben des I/O Ports 0x71 kann dann der Wert an diesem Offset gelesen bzw. geschrieben werden. |
== Weblinks == | == Weblinks == | ||