Hallo, ich habe folgendes Problem (mit einem 80c51 und Keil): wenn ich eine if abfrage in einer interrupt routine verwende, wird sie immer ausgeführt, egal ob true oder false. wie kommt das?
[Glaskugel] Weil die Variable, die Du da abfragst, nicht als "volatile" deklariert ist und daher der Optimierer des von Dir verwendeten Compilers annimmt, daß die Variable sich in der Interruptroutine nicht ändert.
nein, Du hast das zweite gleich in Deiner If bedingung vergessen, Du machst da 'ne zuweisung. das ergibt immer true. Da bin ich ganz sicher, meine Glaskugel lügt nie.
Also meine Glaskugel hat gesagt, daß eine Variable auf einen Bereich getestet wird, in dem sie immer liegt, also z.B. sowas wie vorzeichenbehafteter char < 200.
Ich habe auch eine Glaskugel und die sagt: Du hast einen Stacküberlauf
Meine Reservekugel meinte noch, daß irgendwo drüber ein #define if(x) steht, aber die ist noch nicht richtig justiert.
Weltklasse, das erste Mal, dass einer Hilfe bekommt, bei einer nicht allzu klar fomulierten Frage! (Und keine Standpauke zu der Art ein Problem zu schildern und dann eine klare Frage zu stellen) Gratulation an eure Glaskugeln
Wurst wrote: > Weltklasse, das erste Mal, dass einer Hilfe bekommt, bei einer nicht > allzu klar fomulierten Frage! (Und keine Standpauke zu der Art ein > Problem zu schildern und dann eine klare Frage zu stellen) > Gratulation an eure Glaskugeln Danke
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.