Forum: Mikrocontroller und Digitale Elektronik atmega 32 takt messen


von raccoon (Gast)


Lesenswert?

Hallo,

ich habe mit einem mega32 eine uhr mit lc-display aufgebaut, was auch 
soweit ganz gut funktioniert. der mega läuft mit externem 6 MHz-quarz, 
mit timer 1 im ctc- modus wird jede ms ein interrupt erzeugt. allerdings 
habe ich eine abweichung von ca. 4 sekunden/tag.

gibt es eine möglichkeit, den genauen takt zu messen, mit dem der mega 
läuft? einen ckout wie andere avr hat der ja nicht, oder? am quarz 
selber kann ich nicht messen (kein oszi, nur dmm mit f- messfunktion), 
da der quarz dann aufhört zu schwingen. wenn ich in der isr einen port 
toggeln will, spinnt die schaltung und die uhr läuft um ein vielfaches 
schneller :-(

hat jemand eine idee? und weiss zufällig jemand, inwieweit die delays 
für das lc- display taktschwankungen verursachen?

danke für eure antworten,

raccoon

von Michael U. (amiga)


Lesenswert?

Hallo,

wenn Deine Interruptroutine so kurz wie möglich ist, stört da nichs 
anderes.
Da Du 1ms-Interrupts erzeugst, haz der AVR ja relativ viel Zeit dazu.

Übliche Quarze haben eine Stabilität von ca. 50ppm, also 50 pro Million.
Das wären also rund 1:20000 oder rund 4s/Tag.

Du kannst da jetzt also messen. Das setzt eine Frequenzmesser voraus, 
der auch genau genug ist, hat man normalerweise nicht zuhause rumstehen.

Du kannst statt des einen 22p Kondensators einen Trimmer 10p/40p 
einbauen und den Kram per Versuch abgleichen.
Den Fehler unter ca. 1s/pro Tag zu bekommen, ist machbar.

Ansonsten z.B. einen DCF77-Empfänger ranhängen und die Uhr öfter damit 
korrigieren.

Gruß aus Berlin
Michael

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.