Hallo,
ich habe folgendes vor:
Ich benutze mehrere Timer für verschiede Ereignisse (zBsp. Tastendruch,
Lauflicht, externer Interrupt, Ein- und Ausgaben...). Manche Timer
müssen immer aktiv bleiben und bei Überlauf einen Interrupt auslösen.
Und hier liegt mein Problem: Ich möchte an bestimmte Programmstellen
alle Timer stoppen (den Zählerzustand kurz anhalten) bis auf den einen
Timer, der an der Stelle aktiv sein sollte.
Nachdem die Routine abgearbeitet wurde, sollen alle anderen Timer wieder
weiterzählen (und zwar von dem Zählerzustand, wo sie stehen geblieben
waren).
Ich habe keine Idee, wie das gelöst werden kann.
Bin für jede Hilfe sehr dankbar
Gruß
Tim
Ps.:
Ich arbeite mit einem ATMega32-Mikrocontroller
so stelle ich mir das ganze vor
1 | init(); //alle Timer gestzt und aktiv
|
2 |
|
3 | ...
|
4 | ...
|
5 |
|
6 | //nur Timer1 aktiv, alle anderen stoppen
|
7 | while ( !Timer1_ueberlauf) //Flag wird gesetzt, wenn Timer1 überläuft
|
8 | {
|
9 | tu_was;
|
10 | tu_was;
|
11 | tu_was;
|
12 | }
|
13 |
|
14 | //->Ab dieser Stelle wieder alle Timer aktiv (weiterzählen)
|
15 |
|
16 | ...
|
17 | ...
|