Hallo Leute,
Mit Hilfe eines Timer-Interrupt (Overflow) möchte ich einen Teil des
Hauptprogramms (eine Regelung) aufrufen.
Meine erste Idee, war das Setzen einer Flag.
1 | // Timer-Interrupt
|
2 | ISR (TIMER1_OVF_vect)
|
3 | {flag = 1;}
|
4 |
|
5 | // ...
|
6 |
|
7 | sei();
|
8 |
|
9 | int main (void)
|
10 |
|
11 | while (run)
|
12 |
|
13 | if (flag == 1)
|
14 | {
|
15 | // Regelung
|
16 | flag = 0;
|
17 | }
|
Leider hat das Ganze nicht so gut geklappt. Die Regelung ist zu langsam.
Ich vermute, dass das Programm die Regelungs-Routine nicht abarbeiten
kann, bevor wieder ein Interrupt ausgelöst wird und er wieder von vorne
beginnt.
Sollte ich das Interrupt lieber mit
sperren?
Oder kennt jemand einen ganz anderen Ansatz?
Gruß Seb