PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Nach ca 15 Minuten etwas auslösen, ohne Timer zu benutzen?



x8r
21.03.2007, 15:24
Hi,
für ein Ladegerät muss nach 15Minuten etwas auslösen.
Dies könnte man ja mit einem Timer bewerkstelligen, aber leider kann man den Prescaler ja nur auf max 1024 stellen. Und bei 8MHz müsste der Timer ja ca 7000000 mal überlaufen. Ganz davon abgesehen, dass die Interrupts beim überlaufen evtl meinen anderen Programmablauf stören könnten, wäre das eine unsaubere Lösung.
Gibt es eine andere Möglichkeit, im Hintergrund bis 15 Minuten zu zählen und dann einen Interrupt bzw ein Unterprogramm aufzurufen? Die 15Minuten sollten ab einem Auslösezeitpunkt gezählt werden.
Schonmal Danke für eure Hilfe!
Gruß
Jan

for_ro
21.03.2007, 15:51
Na ja, der Timer würde schon mit ca. 8000 Hertz versorgt, aber wenn du einen 16bit Timer hast und bei 0 startest, dann hat der erst bei 65536 einen Überlauf, also alle 8 Sekunden. Dort brauchst du dann nur noch bis etwa 100 zu zählen.
Falls du eine Uhr laufen hast, kannst du dir natürlich auch die Startzeit merken und dann nach 900 Sekunden stoppen.
Also nix unsauberes.

askazo
21.03.2007, 15:56
So unsauber fände ich die Lösung gar nicht. Da Du im Interrupt lediglich eine Variable hochzählen und überprüfen musst, ob diese schon bei 7000000 angekommen ist, stört das Dein Restprogramm nicht großartig.

Einzige andere Möglichkeit wäre es afaik, einen externen Takt für Deinen Zähler zu verwenden. Den könntest Du ja z.B. mit einem NE555 aufbauen und entsprechend langsam takten lassen.

Gruß,
askazo

x8r
21.03.2007, 16:36
Hi,
@for-ro:
Ich benutze einen Mega 8 und habe nurnoch einen 8-Bit Timer über, deswegen zählt er nicht bis 65000 sondern nur bis 256. Eine Uhr habe ich leider nicht im Hintergrund laufen. Ich hatte nen Fehler in meiner Rechnung, nicht 7000000 überläufe sondern nur 27500.
@askazo:
ich werds dann wahrscheinlich mit nem Timer machen. Nen externe Taktquelle wäre zu aufwändig.

Danke!
Gruß
Jan