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?