Klar, daß ein digitaler Ausgang keine "Bandbreite" hat. Die Frage ist aber wie denn das Signal intern aufbereitet wird. Beim C Modul vermutlich nur per Trigger und bei den Pollins per RC + Trigger. So zumindest meine Vermutung. Wenn die Vermutung stimmt, dann muß das C Modul zappeliger sein.
Sag bescheid wenn Du vor mir was rauskriegst.
So ich habe hier mal eine erste Version meines DCF-Modul-Testprogramms am Laufen.
Direkter Vergleich Pollin vs. Conrad DCF-Modul.
Die Auswertung erfolgt "traditionell", also zu kurze (<50 ms) Impulse werden verworfen, Impulse von 50...150 ms als 0-Bit und Impulse von 150...250 ms als 1-Bit interpretiert.
Anbei die Datenausgabe, normalerweise je Modul eine Zeile pro Sekunde.
Anbei 61 Sekunden Auswertung, von einem Minuten-Sync zum nächsten Minuten-Sync.
Erklärung der sechs Spalten wie folgt:
1. Spalte: P/C
Impuls vom Pollin oder Conrad DCF-Modul
2. Spalte: 0/1
Impuls wurde als 0-Bit oder 1-Bit decodiert
3. Spalte: Millisekunden des gültigen Impulses
Traditionelle Auswertung, 50...150 ms bei 0-Bit, 150...250 ms bei 1-Bit
4. Spalte: Anzahl der zu kurzen Impulse zwischen zwei gültigen Impulsen
Kurze Impulse unter 50 ms werden verworfen, die Zahl der verworfenen Impulse aufaddiert
und als Summe hier angezeigt, wenn der nächste gültige Impuls als Zeile ausgegeben wird
5. Spalte: millis()-Timer von Arduino beim Beenden des Impulses, nur die letzten 5 Stellen angezeigt
Die beiden ersten Ziffern der fünfstelligen Zahl kann man als Sekundenwerte interpretieren
6. Spalte: SYNC
Falls länger als 1500 ms kein gültiger Impuls empfangen wurde, wird beim Anzeigen
des nächsten gültigen Impulses SYNC angezeigt. Normalerweise sollte das nur beim
Minutenimpuls alle 60 Sekunden passieren. Wenn es "Zwischendurch" passiert, dann
ist aufgrund von Empfangsstörungen ein Impuls bei der Auswertung verlorgengegangen.
(In diesem Fall nicht, Störlevel gering)
Also
P/C 0/1 xxx yy millis() SYNC
mit xxx= Dauer des gültigen Impulses
yy= Anzahl der verworfenen zu kurzen Impulse vor diesem gültigen Impuls
millis()= die letzten fünf Stellen des millis()-Timers
SYNC= Falls 1500ms lang vorher kein gültiger Impuls empfangen wurde
P 0 108 0 79416 SYNC
C 0 150 5 79464 SYNC
P 1 212 0 80522
C 1 213 1 80544
P 0 107 0 81417
C 0 118 2 81438
P 0 103 0 82415
C 0 130 2 82458
P 1 209 0 83517
C 1 241 1 83558
P 0 110 0 84416
C 0 142 1 84457
P 0 116 0 85426
C 0 114 1 85438
P 1 203 0 86514
C 1 207 2 86535
P 1 204 0 87517
C 1 236 7 87560
P 0 111 0 88418
C 0 120 2 88440
P 0 103 0 89415
C 0 114 5 89443
P 1 209 0 90516
C 1 205 2 90529
P 0 101 0 91413
C 0 83 10 91424
P 0 102 0 92412
C 0 116 1 92437
P 0 107 0 93415
C 0 112 2 93433
P 0 108 0 94417
C 0 120 1 94435
P 0 115 0 95421
C 0 126 5 95448
P 0 107 0 96418
C 0 125 1 96455
P 1 212 0 97521
C 1 241 2 97568
P 0 105 0 98413
C 0 149 2 98469
P 1 215 0 99520
C 1 249 1 99555
P 0 112 0 419
C 0 131 5 458
P 0 103 0 1409
C 0 143 2 1454
P 1 206 0 2515
C 1 221 4 2537
P 0 108 0 3419
C 0 112 2 3440
P 1 211 0 4519
C 1 215 2 4532
P 0 107 0 5412
C 0 108 6 5425
P 1 210 0 6521
C 1 230 1 6569
P 1 210 0 7515
C 1 243 1 7555
P 1 208 0 8517
C 1 213 3 8535
P 0 113 0 9420
C 0 114 2 9429
P 0 111 0 10419
C 0 134 0 10448
P 1 206 0 11514
C 1 219 3 11543
P 1 207 0 12518
C 1 225 3 12546
P 0 112 0 13419
C 0 115 3 13444
P 1 206 0 14514
C 1 198 3 14527
P 1 216 0 15523
C 1 227 3 15546
P 0 104 0 16415
C 0 138 1 16459
P 1 207 0 17514
C 1 215 0 17534
P 0 103 0 18412
C 0 93 0 18421
P 0 103 0 19412
C 0 104 3 19438
P 0 107 0 20417
C 0 102 3 20439
P 1 206 0 21517
C 1 218 2 21544
P 1 204 0 22513
C 1 233 4 22555
P 0 106 0 23414
C 0 123 2 23448
P 0 116 0 24419
C 0 121 2 24430
P 1 213 0 25517
C 1 244 0 25557
P 0 109 0 26415
C 0 116 3 26436
P 0 109 0 27415
C 0 150 1 27466
P 1 207 0 28514
C 1 239 6 28552
P 0 108 0 29417
C 0 142 1 29472
P 1 205 0 30516
C 1 227 1 30540
P 0 101 0 31412
C 0 136 9 31458
P 0 109 0 32414
C 0 123 2 32444
P 1 210 0 33516
C 1 216 4 33534
P 0 107 0 34413
C 0 129 2 34452
P 0 106 0 35414
C 0 112 1 35431
P 0 107 0 36412
C 0 134 7 36451
P 0 109 0 37419
C 0 121 3 37443
P 0 110 0 39418 SYNC
C 0 129 2 39461 SYNC
Drei Dinge kann man an der Auswertung sehr schön sehen:
1. Das Conrad-Modul hinkt immer etwas hinterher!
Wenn das Pollin-Modul seinen Impuls bereits als "fertig eingelesen" anzeigt, braucht das Conrad-Modul immer noch ca. 10 bis 50 ms extra, bevor der Pegel denselben Status annimmt.
2. Die Conrad-Impulse sind im Schnitt länger als die Impulse des Pollin-Moduls!
3. Bei geringen Störpegeln wie zum Zeitpunkt dieser Auswertung liefert das Pollin-Modul noch ein völlig fehlerfreies Ausgangssignal. Die vierte Spalte mit der Anzahl der verworfenen zu kurzen Impulse zwischen zwei ausgewerteten Impulsen ist beim Pollin-Modul hier immer bei 0, während das Conrad-Modul da meist eine einstellige Zahl von Fehlimpulsen als Störzappler am Ausgang stehen hat.
Bei Gelegenheit werde ich das Programm nochmal um Deinen Filter erweitern und etwas allgemeiner halten, so dass man nicht nur zwei verschiedene Module gegeneinander testen kann, sondern auch beim selben Modul den ungefilterten gegen den gefilterten Ausgang darstellen kann.