Zur Zeit läuft die Uhr, aber ich habe da von der DS1307 eine Abweichung innerhalb von 21 Stunden von -7 Sekunden.
Jetzt gerade wird das DCF-77 Signal durch ein nicht Timergestütztes Polling abgefragt. Es wird alle 1ms nachgeschaut was denn der DCF-77 Eingang so macht.
Zu diesem Zweck wird auch der Interrupt INT0 abgeschaltet, solange das DCF-Signal abgetastet wird. Erst nach einer Minute dann wird der Interrupt INT0 wieder freigegeben.
Jede Sekunde wird der RTC ausgelesen und auf dem LCD-Display angezeigt. Der Takt dazu kommt vom DS1307 und löst das Ganze über den INT0-Interrupt aus.
Und jetzt kommt mein dickes Problem:
Wenn ich das DCF-77 nun erneut zum Abgleich einlese, habe ich in dieser Zeit keine LCD-Anzeige der Uhrzeit, da ja der Interrupt INT0 abgeschaltet wird.
Nun fällt mir leider zur Zeit pardout nicht ein wie ich:
1. Das DCF-77 Signal per Interrupt alle 1ms, oder doch besser alle 10ms, sample und auch dann die Zeiten auswerte
2. Der DCF-77 Empfang und Kodierung im Hintergrund abläuft, so dass die Uhrzeit auf dem LCD-Display immer weiterläuft.

Wäre ganz Toll wenn ich in dieser Richtung Unterstützung bekommen könnte.

Eine Lösung für die etwas hinterherhinkende DS1307 wäre die Zeitabweichung festzustellen und einmal (in der Nacht) die DS1307 entsprechend korrigieren.
Noch besser aber ist wenn man das Ganze in der Nacht nach obigen Punkten wieder syncronisert.

Hier der bisher verwendete Code aus dem Internet:

Wie kann ich hier eine Datei bzw. den gesamten Quellcode anhängen ????
Forume meldet, dass der Text zu lang sei.