mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Receive Complete Interrupt an ATmega2561


Autor: Stephan Schmidt (scoty6v)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich versuche gerade eine Interruptserviceroutine für das Empfangen 
serieller Daten an einem ATmega2561 zu benutzen.
Ich simuliere das programm gerade im AVR Studio. Mit Hilfe von hapsim 
sende ich Daten an die Simulation.
Das Programm funktioniert mit polling. In meiner tatsächlichen Anwendung 
wird polling zu langsam und es werden Daten verschluckt, darum bin ich 
auf den Interrupt angewiesen.
Zur Ausprobe benutze ich zwei Haltepunkte. Einen direkt nach Sei() und 
zu prüfen, ob alles richtig initialisiert wurde, einen zweiten in der 
ISR, in der ich zur Zeite nur einen Variable hochzähle.

Wird der Interrupt nun ausgelöst, wird die ISR nicht ausgeführt, statt 
dessen startet der Controler neu.
Das gleiche Problem habe ich, wenn ich die ISR komplett weglasse.
Ich vermute das das Programm zur falschen Adresse springt.

Meine ISR habe ich ISR(USART1_RX_vect) genannt.

Ich hoffe jemand hat eine Idee für mich.

Autor: Stephan Schmidt (scoty6v)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe eben erst die Meldung des Simulators gesehen:

AVR Simulator: Invalid opcode 0xffff at address 0x01f048

Weiß aber noch nicht, was das bedeutet.

Autor: Stephan Schmidt (scoty6v)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nun habe ich herausgefunden, dass die Adresse 0x01f048 anscheinend die 
Adresse ist, an der die ISR stehen muss. Oder muss ich an der Stelle 
einen Strung an die ISR programmieren?
Wenn ja, wie mach ich das dann unter C?
Bei meinem ATmega32 brauchte ich das doch auch nicht machen ???

Autor: Stephan Schmidt (scoty6v)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Problem ist eine nicht richtig eingebundene Includedatei gewesen. 
Nachdem ich nun die ISR in die main.c genommen habe, läuft alles :-)

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.