Hallo, ich arbeite mit CodeVision, AVRStudio und dem mega64L. Nach Start und Initialisierung meines Programmes steht der Stackpointer auf 0x10FF. Sobald die erste Call-Routine aufgerufen wird, dekrementiert der Stackpointer auf 0x10FD. Schaue ich nun im (Data)Memoryfenster, unter der Adresse von 0x10FE und 0x10FF vom Studio nach, so findet sich da aber nicht die Rücksprungadresse, sondern der Wert 20h 20h. Somit ist klar, dass das Programm nach dem inkrementiern des Stackpointers abstürzt. Stelle ich in den Projektsettings von CodeVision(siehe Anhang) die Heap size von 0 auf 1024 ein, so funktioniert alles Bestens. Bei anderen Projekten, mit mega16 und mega128, habe ich nie den Heap size benötigt. Kann jemand dieses Phänomen erklären? Vielen Dank! Die Projektsettings stehen im Anhang.
Hallo, ich hatte so ein ähnliches Problem mit meinem Mega128: Etwa die letzten 100 Bytes vom RAM konnte ich nicht beschreiben bzw. lesen. Also ging auch kein Rücksprung von Sub-Routienen weil der Stack ja auf die letzte Speicheradresse zeigt. Wenn ich den Stack-Pointer unter diesen Bereich legte, dann funktionierte alles prima. Nach etwa einem Tag suchen bin ich drauf gekommen, dass die Mega103 Fuse gesetzt war. Als ich diese löschte war alles wunderbar. Gruß, Florian
Hallo Florian, vielen, vielen Dank, für Deinen Tip. Genau das war's. Ich Blödi, hab' mir doch genau die Fuse angesehen. Ich überreiche Dir hiermit den Mikrokontroller.net-Award 2005 \/ -00- /\ || || || ======== Sckönen Gruß Marillion
@Marillion: btw, jpeg ist für Fotos geeignet, nicht für Screenshots. Dafür nimmt man png oder wenn es nicht anders geht gif. Aber niemals jpeg (Hinweis fürs nächste Mal).
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.