Forum: Mikrocontroller und Digitale Elektronik "genaue Sekunde" mit richtigem OSC und Overflow INT


von Rölf (Gast)


Angehängte Dateien:

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?

von Rahul (Gast)


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

von Rölf (Gast)


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

von Rahul (Gast)


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...

von xperte (Gast)


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?

von Rahul (Gast)


Lesenswert?

Ja. der 12,288MHz-Quarz war der einzige, der verfügbar war.
Baudratenkompatibel ist er ausserdem.

von Rölf (Gast)


Lesenswert?

also kann man sagen das höhere Raten besser sind?
Ich habe hier nen 8MHz und nen 16MHz liegen. Welcher ist sinnvoller?

von Klaus (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.