Mega644P resettet beim Zugriff auf PORTA

OP #1183764
Lesenswert?

Hallo,

habe mir als kleines Projekt mal eine kleine serielle Konsole aufm 
ATMega644P programmiert, die auch soweit ganz ordentlich funktioniert.

Als Test habe ich dann mal eine Funktion geschrieben, welche über die 
Konsole einen Port schaltet.
-led init: Port auf Ausgang setzen
-led on: LEDs on
-led off: LEDs off
-led toggle: LEDs toggle

Alles funktioniert auch klasse, aber wenn ich PORTA nutze, dann stürzt 
der Controller immer beim Kommando "PORTA = 0x00" bzw. "PORTA ^= 0xFF" 
ab. Und zwar reproduzierbar. Jedoch scheint das Kommando "PORTA = 0xFF" 
ohne Probleme zu funktionieren. Habe das ganze mit dem JTAGICE mkII bis 
zu dem Kommando zurückverfolgen können.

Nehme ich statt PORTA nun einfach PORTB oder PORTC, so funktioniert 
alles einwandfrei.

Nun meine Frage: Hat jemand dasselbe Problem schon einmal gehabt oder 
ist einfach mein Controller kaputt?

Das Programm hab ich einfach mal als rar-Datei angehängt. Vielleicht 
hilft es ja.

MfG
Marius
Angehängte Dateien:
OP #1183779
Lesenswert?

Soo,

habe jetzt zu Beginn meines Programms mal ein paar LED-Tests eingebaut.

Diese Tests sind soweit in Ordnung gewesen. Ich bin jetzt echt verwirrt. 
Überall funktioniert es, nur in meinem gar nicht so komplexen 
led-Programm nicht.
Ich habe einfach keine Erklärung für den Reset.
Mit dem JTAGICE mkII kann ich das Programm so lange verfolgen, bis der 
Befehl st Z, r0 aufgerufen wird. In Z steht passend auch die Adresse von 
PORTA. Danach lande ich in einem undefinierten Speicherbereich. Von da 
aus läuft der Controller wohl dann durch bis er wieder 0x0000 erreicht.

MfG
Marius
Gast #1183784
Lesenswert?

Hi

>In Z steht passend auch die Adresse von PORTA. Danach lande ich in einem 
>undefinierten Speicherbereich. Von da...

Welche Adresse? Die IO-Adresse oder die Adresse von PortA im 
Speicherbereich?

MfG Spess
OP #1183804
Lesenswert?

Adresse war 0x02, wenn ich mich recht entsinne. Das müsste ja auch 
soweit passen. Im Simulator vom AVR Studio funktioniert das Programm 
ebenfalls einwandfrei. Deshalb schließe ich eigentlich einen 
Software-Fehler aus.

MfG
Marius

EDIT: Mittlerweile hab ich das Programm auch auf dem Mega2560, der dem 
STK600 beilag, verifiziert. Ohne Probleme.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren