Forum: Compiler & IDEs Problem mit einer if-Abfrage


von Peter Schmidt (Gast)


Lesenswert?

N´abend...

Ich habe eine if-Abfrage in einer while Schleife laufen.

unsigned char t;

while(1)
{ if(t == 9) { ...tu dies...
              t = 0;}
}

Jetzt habe ich nebenbei einer Timer laufen, der jede Sekunde ausgelöst 
wird.
Sobald der Timer bis 9 gezählt hat, soll er die Routine abarbeiten.

void handler() // quasi meine Timer Routine
{ t++;
}

Dabei habe ich ein Problem. Es kommt vor, dass mein t++ nicht richtig 
funktioniert!
Wohlgemerkt der Timer läuft 100% richtig, auf die Sekunde ! ! !
Ich habe alles überprüft!

Ich denke das sich die Variable t als unsigned char nicht richtig eignet 
für so eine Abfrage!? Kann das sein?

Was kann ich dagegen tun?

Oder andersrum gefragt, soll ich so etwas anders programmieren?
Falls ja, schreib mir mal was bitte!

Ist eigentlich völlig trival und mir eigentlich schon zu blöd die Frage 
hier reinzustellen, aber es ist wie es ist!!

Gruss Peter

von Philipp B. (philipp_burch)


Lesenswert?

Hast du t als volatile deklariert? Sonst wird der Compiler wohl die 
Überprüfung wegoptimieren, da t eigentlich gar nie verändert wird.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.