AVR UART senden und empfangen gleichzeitig per Polling

Gast #1079087
Lesenswert?

Hallo,

ich habe ein Problem mit dem UART der Atmel AVRs. Ich schreibe meine 
Programme in Assembler und nur senden oder nur empfangen geht wunderbar. 
Habe ich jedoch sowohl den Reciever als auch dem Transmitter aktiviert 
(nicht mit Interrupts), bleibt der Controller beim Senden von 
Zeichenketten manchmal hängen. Ich nehme mal an, dass dies an meinem 
Befehl, welcher darauf warten soll, dass das UDR frei ist liegt.

Analog zum Datenblatt und dem hiesigen UART Tutorial:
...
ldi r16, 'T'
rcall WAITFORTXD
out UDR, r16 ; <- an dieser Stelle scheint der Controller manchmal zu 
hängen
.
.
.
WAITFORTXD:
sbis UCSRA, UDRE
rjmp WAITFORTXD
ret

Muss man diesen Befehl abändern, wenn man sowohl sendet als auch 
empfängt?


Gruß hempel

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren