USART: Einige Zeichen werden verändert
Hallo,
wenn ich von meinem ATmega16 die Zahlen von 0-255 zum Computer schicke,
wird z.B. die 13 zu einer 10, andere Zahlen verändern sich auch einfach so.
Dieses Problem besteht aber nur, wenn ich den ATmega16 in Assembler programmiere, in C funktioniert alles normal.
Ich sende und empfange mit 19200 baud. Oszi: 8MHz
Hier die Befehle mit denen ich das USART initialisiere:
Code:
.include "m16def.inc"
.equ BAUD = 8000000/(19200*16)-1
main:
;USART aktivieren
ldi r16, LOW(BAUD)
out UBRRL, r16
ldi r16, HIGH(BAUD)
out UBRRH, r16
ldi r16, 1<<TXEN
out UCSRB, r16
;Hauptprogramm ...........
ausgabe:
sbis UCSRA, UDRE
rjmp ausgabe
out UDR, r16
ret
Was mache ich falsch?
Re: USART: Einige Zeichen werden verändert
Zitat:
Zitat von robotfreak
wird z.B. die 13 zu einer 10, andere Zahlen verändern sich auch einfach so.
Das mit der 13 kann ich mir so denken, daß deine Empfangsroutine /Terminal so eingestellt ist, daß beim Empfang eines <CR> (13) das als Record-Ende interpretiert wird und da wird ggf. ein <LF> künstlich erzeugt.
Bei den anderen Zahlen müßtest du Beispiele bringen