Hallo Dirk,

UPDATE/UPDATETIME
Du hast recht, hier ist in der Hilfe etwas falsch vermerkt.
UPDATE = 1 ist stündliches Update und damit der Parameter UPDATETIME zwischen 0 und 59 zu setzen. Damit wird die Minute angegeben, bei welcher die DCF77 Auswertung gestartet wird.
UPDATE = 2 ist tägliches Update und damit der Parameter UPDATETIME zwischen 0 und 23 zu setzen. Hier ist es die Stunde bei welcher die Auswertung gestartet wird.

TIMER1SEC
Es wird immer nur ein Timer verwendet. Derzeit wird nur Timer = 1 unterstützt, es sollen aber in zukünftigen Releases alle Timer incl. RTC-Quarz (32.768Hz) unterstützt werden. Der Timer wird im CTC-Mode betrieben. Der Timer zählt bis zum Compare-Wert hoch, löst einen Interrupt aus, stellt sich auf 0 und beginnt wiederum mit dem Hochzählen. Wird der Parameter TIMER1SEC = 1 gesetzt, wird während der synchronisationsfreien Zeit der Compare-Wert so verändert, dass nur mehr 1 Interrupt pro Sekunde ausgelöst wird. Wird der DCF-Teil zur nächsten Zeit-Synchronisation wieder gestartet, wird dieser Compare-Wert wieder zurückgestellt.
Wird CONFIG DCF77 = .... verwendet, werden alle CLOCK - relevanten Variablen und Konstanten gesetzt. Eine zusätzlichens Kommando CONFIG CLOCK = SOFT|USER ist daher nicht notwendig.

Variablen:
Die erzeugten Variablen sind im Compiler-Report ersichtlich.


DCF_TIMERCOUNT - Hier wird die Impuls- und Pausenlänge gezählt bis zur nächsten Pegeländerung.

DCF_SEC - Zähler für DCF77 Impulse beginnend beim Minuten-Impuls

Die empfangenen DCF77 Zeitwerte werden in die entsprechenden Variablen geschrieben.
DCF_MIN
DCF_HOUR
DCF_DAY
DCF_MONTH
DCF_YEAR
DCF_WEEKDAY
DCF_FLAGS - Bit 13 bis 20 (Winterzeit, Sommerzeit, Ankündigungbits)

DCF_PARITY - Variable zur Parity-Auswertung
DCF_BITS - Hier werden die empfangenen Bit-Werte links eingeschoben. Ein Zwischenspeicher der Bits bis zur Abspeicherung in den DCF-Variablen DCF_Min ... DCF_FLAGS
DCF_STATUS - Siehe Hilfe-Beschreibung
_WEEKDAY - Wochentag aus DCF-Empfang wird bei Zeitsynchronisation hier hineinkopiert.
CLOCK_SECPART - Bei jedem Timer-Interrupt wird auch der CLOCK-Teil angesprungen. Hier werden die Interrupts mitgezählt, um feststellen zu können, wann eine Sekunde um ist.

Und hier die bekannten CLOCK-Variablen
_SEC
_MIN
_HOUR
_DAY
_MONTH
_YEAR
DATE$
TIME$

Bei DEBUG=1 werden die Variablen
BDCF_IMPULS
BDCF_PAUSE
erstellt. Hier wird die Interruptanzahl für Impuls und Pause eingeschrieben.