Hallo!

Vor vielen Jahren waren einige DCF77-Projekte mit der originalen dcf77.lib bei mir erfolgreich.
Dummer weise weis ich aber nicht mehr genau unter welchen Basteleien ich das hinbekommen habe.

Tatsache ist das mir das Testprogramm aus dem Bascom Handbuch folgende Ausgaben rauswirft:

Code:
00:21:32 00.00.00 45:85:00 45.25.@5 01000001 11000000 11010010 Timezone : 3 13 111
00:21:33 00.00.00 45:85:01 45.25.@5 01000001 11000001 11101001 Timezone : 3 13 48
00:21:34 00.00.00 45:85:02 45.25.@5 01000001 11000000 11110100 Timezone : 3 21 42
00:21:35 00.00.00 45:85:03 45.25.@5 01000001 11000001 11111010 Timezone : 3 13 49
00:21:36 00.00.00 45:85:04 45.25.@5 01000001 11000000 11111101 Timezone : 3 19 43
00:21:37 00.00.00 45:85:05 45.25.@5 01000001 11000001 11111110 Timezone : 3 13 49
00:21:38 00.00.00 45:85:06 45.25.@5 01000001 11000000 11111111 Timezone : 3 13 49
00:21:39 00.00.00 45:85:07 45.25.@5 01000001 11000001 11111111 Timezone : 3 13 49
00:21:40 00.00.00 45:85:08 45.25.@5 01000001 11000000 11111111 Timezone : 3 20 42
00:21:41 00.00.00 45:85:09 45.25.@5 01000001 11000001 11111111 Timezone : 3 13 49
00:21:42 00.00.00 45:85:10 45.25.@5 01000001 11000000 11111111 Timezone : 3 19 43
00:21:43 00.00.00 45:85:11 45.25.@5 01000001 11000001 11111111 Timezone : 3 20 42
00:21:44 00.00.00 45:85:12 45.25.@5 01000001 11000000 11111111 Timezone : 3 19 43
00:21:45 00.00.00 45:85:13 45.25.@5 01000001 11000001 11111111 Timezone : 3 13 49
00:21:46 00.00.00 45:85:14 45.25.@5 01000001 11000000 11111111 Timezone : 3 13 49
00:21:47 00.00.00 45:85:15 45.25.@5 01000001 11000001 11111111 Timezone : 3 13 49
00:21:48 00.00.00 45:85:16 45.25.@5 01000001 11000000 11111111 Timezone : 3 13 49
00:21:49 00.00.00 45:85:17 45.25.@5 01000001 11000001 11111111 Timezone : 3 13 49
00:21:50 00.00.00 45:85:18 45.25.@5 01000001 11000000 11111111 Timezone : 3 13 49
00:21:51 00.00.00 45:85:19 45.25.@5 01000001 11000001 11111111 Timezone : 3 20 42
00:21:52 00.00.00 45:85:20 45.25.@5 01000001 11000000 11111111 Timezone : 3 13 49
00:21:53 00.00.00 45:85:21 45.25.@5 01000001 00000000 11111111 Timezone : 3 19 43
00:21:54 00.00.00 45:85:22 45.25.@5 01000001 00000001 11111111 Timezone : 3 19 43
00:21:55 00.00.00 45:85:23 45.25.@5 01000001 00000000 11111111 Timezone : 3 13 49
00:21:56 00.00.00 45:85:24 45.25.@5 01000001 00000001 11111111 Timezone : 3 20 42
00:21:57 00.00.00 45:85:25 45.25.@5 01000001 00000000 11111111 Timezone : 3 13 49
00:21:58 00.00.00 45:85:26 45.25.@5 01000001 00000001 11111111 Timezone : 3 20 42
00:21:59 00.00.00 45:85:27 45.25.@5 01000001 00000000 11111111 Timezone : 3 13 49
00:22:00 00.00.00 45:85:28 45.25.@5 01000001 00000001 11111111 Timezone : 3 13 49
00:22:01 00.00.00 45:85:29 45.25.@5 01000001 00000000 01010101 Timezone : 3 19 43
00:22:02 00.00.00 45:85:30 45.25.@5 01000001 00000001 10101010 Timezone : 3 20 42
00:22:03 00.00.00 45:85:31 45.25.@5 01000001 00000000 11010101 Timezone : 3 13 49
00:22:04 00.00.00 45:85:32 45.25.@5 01000001 00000001 11101010 Timezone : 3 13 49
00:22:05 00.00.00 45:85:33 45.25.@5 01000001 00000000 11110101 Timezone : 3 19 43
00:22:06 00.00.00 45:85:34 45.25.@5 01000001 00000001 11111010 Timezone : 3 19 43
00:22:07 00.00.00 45:85:35 45.25.@5 01000001 00000000 11111101 Timezone : 3 13 49
00:22:08 00.00.00 45:85:36 45.25.@5 01000001 10000000 00101101 Timezone : 3 20 42
00:22:09 00.00.00 45:85:37 45.25.@5 01000001 10000001 10010110 Timezone : 3 20 42
00:22:10 00.00.00 45:85:38 45.25.@5 01000001 10000000 11001011 Timezone : 3 13 49
00:22:11 00.00.00 45:85:39 45.25.@5 01000001 10000001 11100101 Timezone : 3 20 42
00:22:12 00.00.00 45:85:40 45.25.@5 01000001 10000000 11110010 Timezone : 3 13 49
00:22:13 00.00.00 45:85:41 45.25.@5 01000001 10000001 11111001 Timezone : 3 13 49
00:22:14 00.00.00 45:85:42 45.25.@5 01000001 10000000 00101101 Timezone : 3 13 49
00:22:15 00.00.00 45:85:43 45.25.@5 01000001 10000001 10010110 Timezone : 3 13 49
00:22:16 00.00.00 45:85:44 45.25.@5 01000001 10000000 11001011 Timezone : 3 13 49
00:22:17 00.00.00 45:85:45 45.25.@5 01000001 10000001 00000111 Timezone : 3 19 43
00:22:18 00.00.00 45:85:46 45.25.@5 01000001 10000000 10000011 Timezone : 3 19 43
00:22:19 00.00.00 45:85:47 45.25.@5 01000001 10000001 11000001 Timezone : 3 13 49
00:22:20 00.00.00 45:85:48 45.25.@5 01000001 10000000 11100000 Timezone : 3 13 49
00:22:21 00.00.00 45:85:49 45.25.@5 01000001 10000001 11110000 Timezone : 3 13 49
00:22:22 00.00.00 45:85:50 45.25.@5 01000001 10000000 00011001 Timezone : 3 13 49
00:22:23 00.00.00 45:85:51 45.25.@5 01000001 10000001 10001100 Timezone : 3 20 42
00:22:24 00.00.00 45:85:52 45.25.@5 01000001 10000000 11000110 Timezone : 3 20 42
00:22:25 00.00.00 45:85:53 45.25.@5 01000001 10000001 11100011 Timezone : 3 20 42
00:22:26 00.00.00 45:85:54 45.25.@5 01000001 10000000 11110001 Timezone : 3 13 49
00:22:27 00.00.00 45:85:55 45.25.@5 01000001 10000001 11111000 Timezone : 3 20 42
00:22:28 00.00.00 45:85:56 45.25.@5 01000001 10000000 11111100 Timezone : 3 13 49
00:22:29 00.00.00 45:85:57 45.25.@5 01000001 10000001 11111110 Timezone : 3 13 49
00:22:30 00.00.00 45:85:58 45.25.@5 01000001 10000000 10100101 Timezone : 3 13 49
00:22:31 00.00.00 45:85:58 45.25.@5 01000000 11000000 11010010 Timezone : 3 13 49
00:22:32 00.00.00 45:85:00 45.25.@5 01000001 11000000 11010010 Timezone : 3 13 111
Wie man sieht rödelt das Programm schon seit 22Minuten.
Bereits nach der ersten Minute erkennt er mit dem Pausen-Wert "111" den Minutenanfang und synchronisiert die Sekunden in der DCF-Zeit (3. Spalte) korrekt.
Danach rödelt er sich tot...auch nach Stunden geschieht nicht mehr.

Interessant finde ich das die 100ms Impulse mit Impulswert 13 und die 200ms Impulse mit Werten zwischen 19 und 21 gemessen werden.
OK, das ist "Pi mal Daumen" schon die richtige Dimension, aber eben nicht exakt.
Wenn 100ms Impulse mit Zählerstand 13 gemessen werden, müssten 200ms Impulse streng genommen auf Zählerwert 26 kommen.

Den selben Versatz sieht man auch bei den Pausen:
Standardpause 42 (nach 200ms-Impuls) bis 49 (nach 100ms-Impuls).
Die zwei sekunden lange Pause von Sekunde 58-00 wird allerdings mit Zählerstand 111 gemessen.

Ich habe also irgendwo eine Taktabweichung drin die mir die Zählerwerte verfälscht.
Daher frage ich mich ob die dcf77.lib da eine bestimmte Quarzfrequenz verlangt, oder ob diese die Variable "$crystal" anständig verrechnet.
In der Lib selber habe ich so nix gefunden über eine Berücksichtigung der realen Taktfrequenz.

Was aber auch sein könnte:
Die paar DCF-Projekte von mir waren irgendwann 2008~2009 rum.
Nun ist aber das DCF-Protokoll abgeändert da seit einigen Jahren diese codierten Wetterdaten mitgesendet werden.
Die originale dcf77.lib von Bascom ist datiert auf den 27 April 2007.

Kann es sein das die durch die Wetterdaten irritiert wird?
Gibt es eine aktuellere dcf77.lib?
Trotz einiger Updates von Bascom, das letzte erst von einigen Tagen, scheint diese dcf77.lib noch von der Erstinstallation zu meinem Bascom-Einstieg zu stammen.