MinutenTimer mit dem Mega8

Gast #1050329
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
Gast #1050408
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.
Gast #1050693
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren