Hallo zusammen, wenn ich folgenden C-Code : #include <io8515.h> void main (void) { int test; int dummy; dummy = 2; test = 1; dummy++; test++; if (test == 2){ dummy++; dummy++; test = 200; test = test * 2; } dummy++; } in den IAR (AVR) Debugger gebe, so beginnt dieser bei "test = 1;" und "übergeht" die dummy Zuweisung. Die if Anweisung mag er nicht ausführen und begibt sich sofort zum Programmende ;o( Aber was ist am Code falsch ? oder habe ich bei den Einstellungen etwas falsch gemacht ? Ich arbeite zum erstenmal mit IAR AVR.
Mach mal beide ints "volatile", der Code scheint mir wegoptimiert zu werden (weil er keinen Sinn macht?)...
Jetzt wird die Reihenfolge eingehalten :o) aber das Fenster "Locals", das den Inhalt von Variablen anzeigt, enthält für dummy und test immer den Wert "0"... Aber wie ist das eignetlich, wenn er alles optimiert, dann wäre doch dummy von vornherein 6 und test = 400 und nicht null. Wenn ich "test" und "dummy", global vor der main funktion deklariere, gehts ! Aber warum ? mein NC Compiler für M16C "zickt" bei dem Programm nicht so rum.
Verwende an Stelle von 'dummy' den Namen 'schlauy' und setze die Optimierung von 9 auf 0. Anderfalls kannst Du komplette Subroutinen schreiben, ohne sie aufzurufen. Du wirst dafür keinen Code finden.
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.