Das ist ein AVR? Sieht mir eher nach 8051 aus...
Auf 8051 hatte ich mal Probleme mit der Baudrate, die nicht so war wie im Manual beschrieben, war der Faktor 2 bzw 0.5, und Baudrate verdoppeln ging auch nicht.
Hier mal ein Assembler-Schnippsel aus meinem Uralt-Code, vielleicht hilft dir das irgendwie weiter:
Code:
MOV TMOD, #$21 ' Timer0 auf 16 Bit intern und
' Timer1 auf 8 Bit autoreload
SETB PS ' Serial hat Priorität
CLR PT0
SETB ET0 ' Timer0 aktivieren
CLR ET1 ' Timer1 nicht aktivieren
CLR ES ' Serial deaktivieren
' Timer auslösen
MOV TL0, #$ff
MOV TH0, #$ff
MOV TL1, #$ff
SETB SM0 ' 9 Bit UART mit Timer 1
SETB SM1 ' "
CLR SM2 ' keine Multiprozessor Kommunikation
CLR REN ' Serial Receive sperren
CLR RI ' nichts empfangen
CLR TI ' nichts gesendet
MOV TH1, #$ff ' f4 = -12: 9600 Baud bei 22.1184 MHz
MOV TL1, TH1
SETB PCON.7 ' ...dazu muß die Baudrate verdoppelt werden
SETB EA ' Interrupts aktivieren
SETB TR0 ' Timer0 starten
SETB TR1 ' Timer1 starten
Lesezeichen