Forum: Mikrocontroller und Digitale Elektronik MinutenTimer mit dem Mega8


von Smart (Gast)


Lesenswert?

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

von Datenblatt (Gast)


Lesenswert?

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

von crazy horse (Gast)


Lesenswert?

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.

von Joachim (Gast)


Lesenswert?

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.

von Michael H* (Gast)


Lesenswert?

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