Hallo zusammen
Ich bin am Testen des USARTS
Umgebung:
AVR Studio 4
Prozessor Mega168
Clock 20 Mhz.
Hier erst mal die Initialisierung des USARTS:
1 | LDI temp1,high(UBRR_VAL) ;Baudrate einstellen
|
2 | STS UBRR0H,temp1
|
3 | LDI temp1,low(UBRR_VAL)
|
4 | STS UBRR0L,temp1
|
5 | LDI temp1, (1<<RXCIE0) | (1<<TXCIE0) | (1<<RXEN0) | (1<<TXEN0)
|
6 | STS UCSR0B,temp1
|
7 | //LDI temp1, */(1<<USBS0) | */(1<<UCSZ01) | (1<<UCSZ00)
|
8 | LDI temp1,(1<<UCSZ01) | (1<<UCSZ00)
|
9 | STS UCSR0C,temp1
|
Dann das Testprogramm
1 | ldi temp1,0b00000010
|
2 | sts UDR0,temp1 /*Mit dem im Manual bsechriebenen out-Befehl bekomme ich nur eine Fehlermeldung (Operator 1 out of range)
|
3 | Aber das Datenbyte ändert sich im Simulator.*/
|
4 |
|
5 | kontoanzeige:
|
6 | jmp kontoanzeige ;Endlosschleife zum Testen
|
DerAusgangsport des USART ist Port D Bit 1
Die Häckchen bei der Darstellung im Uart sind meiner Meinung nach
richtig gesetzt.
Nun meine eigentliche Frage.
Wenn ich nun die Endlosschleife im Einzelschritt durchgehe, müsste sich
doch eigentlich das Bit 1 im Poert D irgendwie verändern. Zumindest,
wenn das Startbit auf High geht.
Geht das nur im Simulator nicht, oder ist ein Fehler im Code.
Gruß Fritz