Ich habe hier mal für meinen ATmega168 was geschrieben
er soll eig nur warte mit einer Baudrate von 2400 1 stop bit und in 8ter frame an meine rechner senden. Wenn man simuliert geht alle nur aufen chip will es nicht funktionieren.


Code:
.include "m168def.inc"
 
.def temp    = r16                              ; Register für kleinere Arbeiten
.def zeichen = r17                              ; in diesem Register wird das Zeichen an die
                                                ; Ausgabefunktion übergeben
 
.equ UBRR_VAL   = 207  


; Stackpointer initialisieren
ldi temp,HIGH(RAMEND)
out SPH,temp
ldi temp,LOW(RAMEND)
out SPL,temp


	sbi		PORTD, PD6
	sbi     DDRD,PD6



 
    ; Baudrate einstellen
 
    ldi     temp, HIGH(UBRR_VAL)
    sts     UBRR0H, temp
    ldi     temp, LOW(UBRR_VAL)
    sts     UBRR0L, temp
 
    ; Frame-Format: 8 Bit
 
    ldi     temp, (3<<UCSZ00)
    sts     UCSR0C, temp
 
	
 	ldi     temp, 0x08
    sts     UCSR0B,temp                 ; TX aktivieren
 
loop:
    ldi     zeichen, 'T'
    rcall   serout                      ; Unterprogramm aufrufen
    ldi     zeichen, 'e'
    rcall   serout                      ; Unterprogramm aufrufen
    ldi     zeichen, 's'
    rcall   serout                      ; ...
    ldi     zeichen, 't'
    rcall   serout
    ldi     zeichen, '!'
    rcall   serout
    ldi     zeichen, 10
    rcall   serout
    ldi     zeichen, 13
    rcall   serout
    rjmp    loop
 
serout:
		
    sbi     PORTB,PB0
	sbi     DDRB, PB0
	ldi     temp,UCSR0A
    sbrs    temp,6                    ; Warten bis UDR für das nächste                                    ; Byte bereit ist
    rjmp    serout
    sts     UDR0, zeichen
    ret                                 ; zurück zum Hauptprogramm

Ps: Der prozessor ist ein einem Asuro drin der mit dem Eval board aufgerüstet wurde.

MFG ALBI