mikrocontroller.net

Forum: Compiler & IDEs Grundsätzliches Problem mit UART Interrupt


Autor: Markus (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,

ich habe eine grundsätzliche Frage zur Verwendung bzw. Initialisierung
von Interrupts.

Ich verwende einen AT90S4433 Controller und arbeite mit WinAVR in
Verbindung mit GCC (Version 3.4.1).

Ich möchte, dass ein Interrupt ausgelöst wird, wenn über die serielle
Schnittstelle (UART) ein Datenbyte eingelesen wurde.
So wie ich das Programm geschrieben habe funktioniert aber der
RX-Interrupt leider nicht. Ich setze in der ISR den PIN2 von Port D auf
1 um das zu überprüfen.
Jetzt ist die Frage, ob die Interrupt Funktion "SIGNAL (UART_RXC)"
wie ich sie definiere richtig ist.

Die Angabe UART_RXC habe ich aus dem Datenblatt des Controller. Stimmt
diese so, oder wo kann ich den Handler eindeutig definieren und
zuweisen.

Vielen Dank

Markus

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
SIGNAL(SIG_UART_RECV) wäre der korrekte Handler für UART-Receive
interrupts.
Du solltest übrigens vor dem schreiben in UDR das UDRE-Bit Prüfen!

while(!(UCSRA & (1 << UDRE));

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo "OldBug",

vielen Dank für Deinen Hinweis! Jetzt funktioniert es :-)
Kannst Du mir bitte sagen, wo ich die genaue Zuordnung der ISR-Handler
finde. In der Doku und in den Header Files habe ich leider nicht
gefunden.

Vielen Dank für Deine Hilfe.

Gruß
Markus

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In meinem Fall:
C:\Programme\WinAVR\avr\include\avr\io4433.h

Also lieber nochmal suchen :-)

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hoppla,

du hast recht. Bei mir stehts doch drin ;-)

Danke nochmals

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.