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.
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.
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
> 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.