Hey,
Es ist ziemlich lächerlich was in meinem Programm im Moment schief
läuft. Ich habe eine Bedingung und möchte durch eine While Schleife, die
NICHTS TUT!, warten, bis diese Bedingung erfüllt ist. z.B.
while(!(Taster1 == 1)){ //nichts tun }
oder
while(!(Taster1 == 1));
---------
Beides geht nicht. Das komplette Programm hängt sich auf. Kann es sein,
das GCC da irgendetwas heimlich "optimiert"? Oder wo liegt mein Fehler?
Danke!
Wenn `Taster1` nicht als volatile deklariert wird, dann optimiert GCC die Schleife zur Endlosschleife.
Ich werte mit dem ADC eine kleine Tastatur aus, jeder Taste wird ein Wert zugeordnet.. 1,2,3,4,5... in einer Variable wird dieser Wert gespeichert und alle paar Millisekunden aktualisiert. Wenn ich diese Variable wie oben gezeigt allerdings verwursten will, kommt nichts dabei raus.
Erstaunlich ist, dass wenn ich eine Warteschleife in die while schleife setzt (ein paar ms), dann funktioniert es.. nur will ich das nicht /-:
Die (vermutliche) Lösung steht doch schon da: Turbo J schrieb: > Wenn `Taster1` nicht als volatile deklariert wird, dann optimiert GCC > die Schleife zur Endlosschleife. volatile<-- klick
Alles klar, nun funktioniert es. Gerade erst in GCC eingestiegen, nehmt es mir nicht übel. Danke nochmal!
Hallo die gesamte Zeile ist der Kommentar. Klar was dan passiert ? Jabu schrieb: > //nichts tun } Der Compiler meldet Fehler.
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.