Hallo Leute, ich wollte mich mal erkundigen, ob es möglich ist mit dem Mega8 einen Minutentimer mittels overflow interrupt zu realisieren. Immer wenn der Interrupt auftritt, also der Zähler übergelaufen ist, dann erhöhe ich eine Variable? Im Grunde sollte dies kein Problem sein, allerdings würde ich gern erfahren welcher Formel der Timer gehorcht. F_CPU/2*pre*8bit = Interruptfrequ??? kann mir das jemand bestätigen, oder mich eines besseren belehren? Vielen Dank für eure Mühe Schönen Abend noch Smart
Datenblatt und/oder http://www.mikrocontroller.net/articles/AVR-Tutorial:_Timer Woher soll die "2" in "F_CPU/2*pre*8bit" kommen? Wenn Du dich auf das Tutorial beziehst (bzw. auf das "Blinken" einer LED) kommt die "2" dadurch zustande, das jeweils zwischen zwei Zuständen gewechselt wird. Die eigentliche Timer-Frequenz ist aber F_CPU/(256*pre).
direkt als Minutentimer ist schwierig (wenn überhaupt, habs nicht durchgerechnet) und wenn überhaupt nur bei wenigen Quarzfrequenzen möglich. Und vor allem: gar nicht nötig! Bau die einen 1ms-(oder auch 5 oder 10 oder 20, egal)Interrupt. In der ISR zählst du eine Variable hoch, die dir dann deine Minuten liefert. timer_int { //1ms static unsigned int ms_count=0; ms_count++; if (ms_count >=60000) {minuten_tic=1; ms_count=0; } . . } Und im Hauptprogramm fragst du minuten_tic ab, wenn 1 ist eine Minute um.
Genau, auf ähnliche weise hab ich mal eine Stoppuhr gebaut, die bis 99,9999 Sekunden läuft. Aber die funktionsweise ist ja die, wie ober beschrieben. Meine kleinst Zeiteinheit ist 100µs. Und alle weiteren Schritte werden nur durch das Hochzählen von Variablen erreicht. Kannst ja mal in der Codesammlung gucken, da ist das drin. Bin bei weitem kein begnadeter Programmierer, aber das Teil lief einwandfrei.
ums genau hinzukriegen, wirst du um einen compare match interrupt oder einen uhrenquarz nicht drum rumkommen. hilfreich: AVR - Die genaue Sekunde / RTC
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.