"genaue Sekunde" mit richtigem OSC und Overflow INT

Gast #326948
Lesenswert?
• ▲
▼
Hallo
Um das Problem mit der genauen Sekunde per angepasstem externen OSC mal
zu machen habe ich im Anhang liegenden Code geschrieben, der Sekunden,
Minuten, Stunden hochzählt.

Der TImer 1 sollte bei 4.194304 MHz und dem Prescaler 64 eigentlich
genau 1 Overflow/Sekunde machen.

Nach 7 Stunden habe ich eine Abweichung von 5 Sekunden! Ist das
irgendwo zu erklären?
Angehängte Dateien:
Gast #326949
Lesenswert?
• ▲
▼
Dann hat dein OSC nicht ganz genau die angegebene Frequenz, die er haben
soll (7*3600 = 25200 Sekunden 5/25200 = 0,2 Promille Abweichung recht
passabel...)
Hast du dir den Thread von Peter Dannegger zu dem Thema schon mal
angeguckt?
Mit meiner Uhrenvariante hatte ich bisher noch nicht solche Abweichung;
und kalibrierbar ist sie ausserdem....
http://www.mikrocontroller.net/forum/read-4-334642.html#new
Gast #326950
Lesenswert?
• ▲
▼
ALso ehrlich gesagt glaube ich nicht an eine technische Abweichung bei
dem OSC. Wenn dort draufsteht 4,194304 MHz dann sollte das auch so
sein. Ich geb ja nicht umsonst die ganzen Kommastellen an.
Ich verwende diesen im STK500 auf dem extra-OSC Steckplatz.
Dieser ist wie ich sehe, auch nicht sehr nahe am µC angebracht, was ja
möglichst immer so sein sollte. Kann es vlt. daran liegen?

Gruß
Rolf
Gast #326951
Lesenswert?
• ▲
▼
Guck dir mal den Plan im Handbuch an: hinter dem Quarz sitzt ein
kompletter Oszillator, der das Signal verstärkt. Durch die
Leitungslänge kann es eigentlich nur zu einer Signalformverfälschung
kommen.
Quarze sind mechanische Bauteile, die bis auf eine gewisse Toleranz
genau gefertigt werden können.
Kannst ihn ja mal ausmessen...
Gast #326952
Lesenswert?
• ▲
▼
Ich hab dein Programm mit der Uhr mal angekukt. Nicht schlecht.
Aber warum der spezielle Wert für den OSC von 12,... MHz ?
Kann ich es auch mit anderen Werten machen und dementsprechend den Wert
für das Compare Register OCR1A ausrechnen?
Gast #326955
Lesenswert?
• ▲
▼
Es gibt Geräte, die können feststellen, ob ein Oszillator resp. ein
Signal 4.194304 MHz hat oder 4.194304001 MHz.
Die Dinger nennen sich "Frequenzzähler".

Man darf aber nicht den Fehler machen, das Signal direkt am Quarz bzw.
an den Osc-Pins des uP abgreifen zu wollen, denn der Tastkopf mit
seinen -sagen wir mal-  15 pF beeinflusst das gewaltig.
Also das OSC-Signal über ein zusätzliches Cmos-Gatter führen, z.B.
74HC00 oder 74AC00 und dann dessen Ausgang mit'm g'scheiten
Frequenzzähler messen (...der mind. 1/2 Stunde eingeschaltet ist oder
einen Quarzofen hat und unlängst kalibriert wurde).
Sonst muss man halt Langzeitmessungen machen und nach 24 Stunden mit
dem DCF Funkuhrsignal stoppen und rückrechnen. GPS Funkuhr wäre
besser.
Klaus

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.