www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART Tx IRQ


Autor: Christoph Kukulies (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
AT90S2313:

Ich bin dabei, einen Ringbuffermechanismus für Zeichenausgabe (Midi) zum 
implementieren, weil ich aus Zeitgründen nicht pollen will - es wird 
eng. Dabei stoße ich auf den Fakt, daß es offenbar zwei Interrupts bei 
der Zeichenausgabe im UART gibt, TXCIE, wenn das letzte bit das 
Shiftregister verlassen hat und UDRIE, wenn das Datenregister leer ist.

Welchen IRQ soll ich nehmen? Ich tendiere zu UDRIE.

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wann das Zeichen vollständig rausgeshifted wurde ist doch nicht wirklich 
interessant. Wichtig für das Programm ist, wann das UDR wieder bereit 
ist ein neues Zeichen aufzunehmen. Also würde ich auf jeden Fall UDRIE 
nehmen.

Autor: Christoph Kukulies (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man fragt sich nur, wozu es dann den TXIE Interrupt ueberhaupt gibt.

Autor: Rudolf Sosnowsky (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Christoph,

dafür kann ich mir zwei Gründe vorstellen.
1. Um den Prozessor schlafen zu legen, wenn die Übertragung beendet ist, 
also das letzte Bit raus
2. Um mit einem Port zu klappern, nachdem das letzte Bit draussen ist. 
Man kann das z.B. verwenden, um bei einem Display mit Schieberegister 
den Line Pulse mit dem Port zu erzeugen, nachdem über Data In und Clock 
Pulse das Bitmuster eingeschoben wurde.

Gruß, Rudolf.

Rudolf Sosnowsky +++ LC Design
EPSON Technology Partner
Internet http://www.LC-Design.de

Autor: Christoph Kukulies (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> dafür kann ich mir zwei Gründe vorstellen.
> 1. Um den Prozessor schlafen zu legen, wenn die
> Übertragung beendet ist, also das letzte Bit
> raus
> 2. Um mit einem Port zu klappern, nachdem das
> letzte Bit draussen ist. Man kann das z.B.
> verwenden, um bei einem Display mit
> Schieberegister den Line Pulse mit dem Port zu
> erzeugen,
> nachdem über Data In und Clock Pulse das Bitmuster
> eingeschoben wurde.

Das leuchtet vollkommen ein. Danke.
Aus Zeiten der PDP-11 und Microcomputer kennt man nur ein CSR (Control 
und Status Register)
und Transmitter-done Interrupt.

Jetzt, da der AVR UART und andere Funktionalitaet in einem beinhaltet, 
nacht so etwas Sinn.

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.