Gast
#177112
Hallo zusammen, ich hab ein größeres Projekt im Kopf, und zwar will ich mir eine Nixie-Funkuhr bauen, d.h eine Uhr, die als Anzeige die schönen, nostalgischen Röhren verwendet (Wer's nicht kennt, mal durchgoogeln, das lohnt sich ;-)). Mein erster Vorversuch besteht darin, erst mal die Software, sprich die Funkuhr mit einem 2x16 LC-Display zu realisieren. Die Uhr soll beim Einschalten und dann jeweils nachts um 4:00 Uhr synchronisieren, dazwischen läuft eine interne Uhr und der DCF-Empfänger ist aus. So weit so gut, im Prinzip läuft die Software auch schon. ABER: Das Timing passt nicht. Die Uhr läuft ca. jede halbe Stunde eine Sekunde voraus, und das ist natürlich schon recht viel. Ich hab meine Schleifen schon gecheckt, rein rechnerisch müsste das passen. Ich hab den Quelltext mal angehangen, im Prinzip läuft es so ab: Ich hab einen Interrupt, der alle 5ms aktiviert wird (über den Output Compare Interrupt von Timer1). Das ist dann meine Zeitbasis für die DCF-Auswertung. Darüberhinaus hab ich in der Interruptroutine einen Zähler, der von 1 bis 200 zählt (200 x 5ms = 1s) und bei jedem Überlauf die Uhr weiterzählt. Der µC läuft mit einem 4MHz-Quarz. Trotz Quarz und genauer Rechnung (die wahrscheinlich doch irgendwo einen Pferdefuß hat) hab ich diese zeitliche Verschiebung, wie gesagt etwa 2s pro Stunde, die die Uhr falsch geht. Woran kann das liegen ? Was kann ich noch tun ? (Sicher, ich könnte die Zählerwerte hinfummeln, aber das scheint mir irgendwie primitiv -- es muss doch einen Grund geben, warum das nicht ganz stimmt.) Im Voraus vielen Dank für Eure Mühe, schöne Grüße, Mario