Forum: Mikrocontroller und Digitale Elektronik UART Tx IRQ


von Christoph Kukulies (Gast)


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.

von Andreas S. (andreas) (Admin) Benutzerseite


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.

von Christoph Kukulies (Gast)


Lesenswert?

Man fragt sich nur, wozu es dann den TXIE Interrupt ueberhaupt gibt.

von Rudolf Sosnowsky (Gast)


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

von Christoph Kukulies (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.