mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR UART senden und empfangen gleichzeitig per Polling


Autor: hempel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: rene (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist dummes Zeug. Falls man pollen will, dann in einem 
Timerinterrupt. Und dann sicher nicht warten. Entweder ist gut, oder 
eben nicht. Die Konditionen, die gepruft werden muessen, sind : Gibt's 
was zu senden und ist das UART leer, ist was im Eingangspuffer.
Nimm Interrupts. schau hier fuer Code :
http://www.ibrtses.com/embedded/avrasmuartint.html

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.