mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Mega644P resettet beim Zugriff auf PORTA


Autor: Marius Wensing (mw1987)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

AVCC ordentlich angeschlossen?

MfG Spess

Autor: Marius Wensing (mw1987)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Müsste eigentlich passen, wenn Atmel auf dem STK600 nicht groben Unfug 
getrieben hat.

Ich mess das aber gleich nochmal nach.

MfG
Marius

Autor: ahem (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ein Pin von PortA einen Schluss nach Vcc hat und somit die Speisung 
kurzschliesst...

Autor: Marius Wensing (mw1987)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Marius Wensing (mw1987)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.