Gast
#2073183
Hallo, ich saß gerade an einem kleinen Projekt und wunderte mich, warum mein Atmega8 irgendwie nicht das tat, was er meiner Meinung nach tun sollte. Da ich vor kurzem das Einsteigerset von myAVR erstanden hatte, programmierte ich ihn mit der mitgelieferten Software "SiSy". Da dieses leider keinen Debugger mitliefert, habe ich mal umgeschwenkt zum AVR Studio. Dort habe ich ein ganz einfaches kleines C Programm geschrieben, welches interessanterweise nicht funktioniert. Zuerst dachte ich, meine sämtlichen C Kenntnisse wären eingestaubt.. Eine Überprüfung im Visual Studio (mit exakt dem gleichen Programm) erwies sich allerdings als positiv, es funktioniert wunderbar. Ich weiß mir leider keinen Rat mehr, daher bitte ich hier um Hilfe, evtl. hat Jemand solch ein Problem schonmal gehabt? Um folgenden Code geht es: #include <avr/io.h> int main(){ int i; int a; while(1){ for (i=0;i<=5;i++){} i=0; for (a=0;a<=5;a++){} a=0; } } Das Programm ansich ist antürlich vollkommen Sinnlos, was aber ja nicht heißt das es deswegen nicht funktionieren darf. Ich deklariere mir zwei Variablen (i und a), laufe in eine endlose while Schleife und zähle dort in einer for Schleife i bis 5 hoch, komme dann aus dieser Schleife heraus und weise i wieder den Wert 0 zu. Das gleiche mache ich mit "a". Im Visual Studio funktioniert das ganze tadellos, das Programm bleibt in meinen Schleifen, zählt bis 5 , und kommt wieder heraus. So wie es sein sollte. Interessant wird das Ganze allerdings im AVR Studio Debugger. Hier läuft das Programm in die erste for Schleife, zählt bis 5 , setzt auf wundersame weise i SOFORT wieder auf 0 und bleibt in der ersten for Schleife kleben...für immer. Wo ist da bitte der Sinn? Was mache ich falsch? Gruß