Uhr läuft ungenau

Gast #149871
Lesenswert?
• ▲
▼
Hallo!

Ich habe eine Uhr mit dem 2313 gebaut, die mit 4 MHZ betrieben wird.
Das Problem ist, daß die Uhr in einer Woche 20 Sekunden nachgeht.
Nachfolgend ein Stück Code, das den Sekundentakt erzeugt. Ich habe 2
Fragen: Sieht jemand dort einen Fehler? Welchen Timer benutzt der WAIT
Befehl von Bascom, weil ich im Hauptprogramm zum Multiplexen meiner
Anzeige einen Wait 2msv verwende?

On Timer1 Ontimer1               'Interrupt-Routine für
Timer1Overflow
Config Timer1 = Timer , Prescale = 256       'Takt: Quarz/256=15625Hz
Enable Timer1                   'Timer1-Overflow-Interrupt
einschalten
Enable                                     'Interrupts global
zulassen
Timer1 =49911                             'Abstand=65536-49911=15625

Do
'Hauptprogramm
Loop
Ontimer1:                                    'Interrupt-Routine
  Timer1 = 49911                           'Timer 1 voreinstellen
  Ftoggle = Not Ftoggle                    'Toggle-Bit invertieren
  'Portb.7 =                         'Leuchtidiot als Anzeige
                                     'für die Sekunden
Return                               'und zurück vom Interrupt
' **** END OF PROGRAM



MfG Paul
Gast #149873
Lesenswert?
• ▲
▼
Der uC benötigt mindestens 6 Takte um die Interruptroutine zu starten.
Dazu kommen noch weitere Befehle von BASCOM. Dadurch vergeht einiges an
Zeit ehe du das Timer Register nachlädst. Und genau das verursacht, dass
die Uhr nachgeht.
Gast #149874
Lesenswert?
• ▲
▼
Deine Ungenauigkeit entspricht etwa 33ppm. Das liegt im Rahmen der
Quarzgenauigkeit. Wenn Du es genauer haben willst, dann mußt Du
entweder den Quarz mit einem Trimmkondensator etwas ziehen oder aber
die Synchronisierung in Software erledigen. DCF77 ist da hilfreich.

ciao, Stefan.
Gast #149875
Lesenswert?
• ▲
▼
Da hat Stefan recht.

Übliche µC-Quarze sind zwar hochkonstant, aber nicht sehr genau.
Es ist also ein Abgleich nötig.

Bei Deinen Angaben beträgt die echte Quarzfrequenz 3,999868MHz.

In der Codesammlung ist ein Beispiel, wie man für beliebig krumme
Quarzfrequenzen die genauen Timerwerte automatisch einstellt.


Peter
Gast #149876
Lesenswert?
• ▲
▼
hallo
ich hatte mir in ASM mal eine Uhr aufgebaut mit einem Mega8

Interner RC Oszilator und einen Externen Uhrenquarz als Takt fuer
meinen Timer...


ich hatte die Ihr 2 Tage laufen lassen bei mir auf der Arbeit
gegenueber eine Kirschenglocke + Radio und die schlugen immer zur
gleichenzeit volle Stunden..

ok Meine uhr auf den Glockenschlag gestartet und 2 tage Laufen lassen
siehe da sie ging von meiner Feststellung ger sehr genau (ich selbst
konnte es mit meinem Ohr (Glocke) / Auge (LCD Display) keine
Zeitverzögerung erkennen...

Wie es nun mit einem Monat / Jahr aussieht keine  ahnung war damals nur
zum kennenlernen...

Gruss Jens

PS: Der Uhrenquatz war aus einer alten Quarz Uhr =)

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.