Grundsätzliches Problem mit UART Interrupt

Gast #178194
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
Angehängte Dateien:
Gast #178195
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));
Gast #178196
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.