User manual

69 C-Control Pro Mega 32
© 2005 Conrad Electronic
können zusätzliche Prüfmechanismen verwendet werden, z.B. Plausibilitätsprüfung (ist die
empfangene Zeit innerhalb der zulässigen Grenzen) oder mehrmaliges lesen der DCF77-
Zeitinformation und Vergleich der Daten. Eine andere Möglichkeit wäre die DCF-Zeit mit der
aktuellen Zeit der RTC vergleichen und nur eine bestimmte Abweichung zulassen. Dieses
Verfahren geht nicht nach dem Programmstart, da die RTC erst gesetzt werden muß.
Beschreibung des Beispielprogramm "DCF_RTC.cc"
Das Programm DCF_RTC.cc ist eine Uhr, die über DCF77 synchronisiert wird. Die Uhrzeit und
das Datum wird auf einem LCD-Display angezeigt. Die Synchronisation erfolgt nach dem
Programmstart und dann täglich zu einer im Programm festgelegten Zeit (Update_Stunden,
Update_Minuten). Es werden zwei Libraries verwendet: DCF_Lib.cc und LCD_Lib.cc.
Für den Funkempfang des Zeitsignals ist ein DCF77-Empfänger erforderlich. Der Ausgang des
DCF-Empfängers wird an den PortD.7 angeschlossen. Zuerst muß der Anfang einer
Zeitinformation gefunden werden. Es wird auf die Pulslücke (59.Bit) synchronisiert. Danach
werden die Bits im Sekundentakt aufgenommen. Es erfolgt eine Parity-Prüfung nach der Minuten
und Stunden Information und ebenfalls am Ende der Übertragung. Das Ergebnis der Parity-
Prüfung wird im DCF_ARRAY[6] gespeichert. Zur Übergabe der Zeitinformation wird das
DCF_ARRAY[0..6] verwendet. Nach dem Empfang einer gültigen Zeitinformation wir die RTC mit
der neuen Zeit gesetzt und läuft dann selbständig weiter. Die RTC als auch die DCF77-
Dekodierung ist über einen 10ms Interrupt gesteuert. Diese Zeitbasis ist von der Quarzfrequenz
des Controllers abgeleitet. DCF_Mode steuert den Ablauf für die DCF77-Zeitaufnahme.
Tabelle DCF-Modi
DCF_Mode
Beschreibung
0
kein DCF77-Betrieb
1
Puls suchen
2
Synchronisation auf Frameanfang
3
Daten dekodieren und speichern, Paritätsprüfung
RTC (Real Time Clock)
Die RTC wird mit einem 10ms Interrupt gesteuert und läuft im Hintergrund unabhängig vom
Anwenderprogramm. Alle Sekunde wird die Anzeige auf dem LCD-Display ausgegeben. Das
Anzeigeformat ist 1. Zeile: Stunde : Minute : Sekunde
2. Zeile: Tag . Monat . Jahr
Die LED1 blinkt einmal pro Sekunde.
Nach dem Programmstart beginnt die RTC mit der festgelegten Uhrzeit. Das Datum ist auf Null
gesetzt und zeigt an. Das noch kein DCF-Zeitabgleich erfolgt ist. Nach dem Empfang der DCF-
Zeit wird die RTC mit den aktuellen Daten aktualisiert. Die RTC ist nicht batteriegepuffert, d.h. die
Uhrzeit läuft ohne Spannungsversorgung des Controllers nicht weiter.