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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.