Gast
#615015
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?
|
Anzeige
|
if in einer Interrupt Routine
Gast
#615015
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.
Gast
#615275
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
Gast
#615374
Meine Reservekugel meinte noch, daß irgendwo drüber ein #define if(x) steht, aber die ist noch nicht richtig justiert.
Gast
#615378
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
Gast
#615408
Meine Glaskugel sagt: Strichpunkt direkt hinter if-Anweisung :-) Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|