Forum: Mikrocontroller und Digitale Elektronik Debugger überspringt Befehl STM8s


von Mirco (Gast)


Lesenswert?

Hi ich brauche dingend Hilfe!

im folgenden Codeausschnitt wird adwert einfach nicht auf null gesetzt. 
Weder in der Initialisierung noch später in der while(1)-Schleife. Wenn 
ich mit dem Debugger jeden Schritt einzeln mache, sieht man, dass er 
diese Zeilen einfach überspringt.

Weiß jemand woran das liegt?
Wird der Code vllt weg optinimert?

in adwert steht immer eine -26112.



void main(void){

  int var = 0, adw = 0;
        int adwert = 0;
  double U_E = 1.0;

  while (1){

  adwert = 0;

        adwert = adwert +1;

  }
}

von Roland P. (pram)


Lesenswert?

Wird vermutlich wegoptimiert, deklariere mal adwert mit volatile, bzw 
schalte mal die Optimierung aus (mit eingeschalteter Optimierung kann 
man IMHO eh nicht vernünftig debuggen)

Gruß
Roland

von Mirco (Gast)


Lesenswert?

Danke für die Antwort. Mit volatile verhält es sich tatsächlich wie 
gewünscht.

Allerdings würde ich gerne die optimierung komplett ausstellen. Habs 
auch grade schon versucht aber habe wohl nicht die richtigen Häcken 
gesetzt. Zumindest funktioniert es ohne volatile nicht.

Kannst mir vllt sagen wo genau ich das aus stelle? Ich verwende den STVD

von Mirco (Gast)


Lesenswert?

weiß jemand was ich da genau wo ausstellen muss das der Compiler da 
nichts ändert?

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.