Hallo,
ich habe noch nicht soviel Erfahrung mit Interruptprogrammierung und
wollte zur Sicherheit mal nachfragen, wie ihr dieses Problem lösen
würdet.
Aufbau eines bestehenden Programms
1 | Interruptroutine()
|
2 | {
|
3 | //Abfrage der unterschiedlichen Gerätefunktionien
|
4 | //incl. Ausgabe auf dem Display
|
5 | }
|
6 |
|
7 | main()
|
8 | {
|
9 | if(Taste)
|
10 | {
|
11 | #asm("CLI")
|
12 | Standby_Anzeige();
|
13 | #asm("SEI")
|
14 | }
|
15 | }
|
Nun möchte ich den Code so umbauen, dass der Kontroller auch während der
Standby_Anzeige die Interruptroutine durchläuft und bei Alarm die
Standby_Anzeige automatisch beendet (sonst wird sie nach einer
definierten Zeit automatisch beendet).
Dazu habe ich mir gedacht, dass ich das Abschalten des Interrupts vor
der Standby_Anzeige entferne und eine Globale Variable "Standby_Aktiv"
einführe.
Diese wird vor dem Eintritt in die Standby_Anzeige auf 1 gesetzt und bei
Verlassen wieder auf 0. Diese Variable "Standby_Aktiv" wollte ich nun in
der Interruptroutine vor jeder Ausgabe am Display abfragen.
Ich hab das auch getestet, aber es klappt nicht!! :-(
Wie löse ich dieses Problem richtig???