In Interrupts verwendet man volatile Variablen. Anstatt "int a" musst du "volatile int a" schreiben, gleiches gilt auch für char,...
Was mir auch noch auffällt ist das du auf "c==1" und "c==2" prüfst. Besser ist es wenn du auf "c==1" und auf "c!=1" prüfst. Wenn du z.B. c==3 ist wird nichts ausgeführt. Wenn du mehrere Auswahlmöglichkeiten hast könntest du auch mit "switch case" arbeiten. Also
Code:
switch(c)
{
case 1: ....
break;
case 2: ....
break;
default: ....
}
default wird ausgeführt wenn keine Auswahl zustimmt (also wenn z.B. c==3), benötigt auch kein break; mehr. Du musst auch darauf achten das du ansonsten immer ein break; einfügst. Sonst wird das switch weiter ausgeführt. Wenn du z.B. bei "case 1:" das break; vergisst wird "case 1:" und "case 2:" ausgeführt.
Ich hatte mit einem else if schon Probleme (Programm hat nicht so funktioniert wie es sollte, habe es mehrfach überprüft und auch neu geschrieben). Ich mache seit dem nur mehr if bzw if/else und switch case Abfragen, aber keine else if Abfragen mehr.
MfG Hannes
Lesezeichen