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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.