Das UART-Tutorial funktioniert nicht

Gast #86636
Lesenswert?
• ▲
▼
Hallo,

habe das UART-Tutorial (Senden) auf dieser Seite ausprobiert - und
stoße auf ein seltsames Phänomen. Bei beiden Beispielen (ATmega8 und
AT90S4433) wird nach 2 Durchläufen das UDRE-Flag (UART Data Register
Empty) im Simulator nicht mehr gesetzt und das Programm hängt sich
deshalb in einer Endlosschleife auf. Das UDR-Register ist aber leer und
das Flag müste deshalb gesetzt werden.

Das ist mein erstes AVR-Projekt, deshalb bin ich jetzt ziemlich
verunsichert. Kann der Simulator einen Bug haben? Habe aufgrund dieses
Verdachtes schon das AVR-Studio4 (Windwos-XP) neu installiert.

Schick das unveränderte Beispiel vom ATmega8 dieser Seite als Anhang
mit.

Vielen Dank
Angehängte Dateien:
Gast #86637
Lesenswert?
• ▲
▼
Hallo,

hast du das auch schon mal länger simuliert? - Das erste byte, wo in
das UDR geschrieben wird, wird sofort an den RS232-Transmitter
weitergegeben. Also wird dann das 2. Byte in das Datenregister
geschrieben. Das Bit kann noch nicht übernommen werden, weil der
Transmitter noch nicht mit dem senden Fertig ist. Also wird das
UDRE-Flag gelöscht. Erst wenn der Transmitter fertig ist (das Dauert
vor allem im Simulator ziemlich lange), wird das byte aus dem UDR
geholt und gesendet. Das UDRE-Flag wird dann gelöscht und du kannst das
nächste Byte ins Register schreiben.
Am einfachsten setzt du einmal einen Breakpoint auf die Stelle, wo du
das Byte in das UDR-Register schreibst. Je nach Rechnergeschwindigkeit
kann es einige Zeit dauern, bis das nächste Byte gesendet wird.

Ich hab z.B. schon einen Timer als Sekundenzeitgeber benutzt. Bei der
Simulation hab ich richtig lange warten müssen, bis der nächste Impuls
kam.

Gruß, Florian

PS: Wenn das auch nicht funktioniert, dann stell doch bitte mal den
Source hier ins Forum. Mit der Datei, welche du angehängt hast, kann
ich nichts anfangen.

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