Hi D´oh,

wie Du schon sagst, war die Baudratenberechnung das Problem.

Ich habe das Programm nach Hilfestellung im Mikrocontroller-Forum etwas abgeändert und nun läuft das wie gewünscht:

#include <avr/io.h>
#include <inttypes.h>

/* CPU Frequenz */
#define F_CPU 1000000UL //Frequenz 1 Mhz

#define BAUD 9600UL //Baudrate


// USART initialisieren
void uart_init(void)
{
// Baudrate einstellen (Normaler Modus)
#if F_CPU < 2000000UL
UCSRA = (1 << U2X);
UBRRL = F_CPU / (8 * BAUD) - 1;
#else
UBRRL = F_CPU / (16 * BAUD) - 1;
#endif

// Aktivieren von receiver und transmitter
UCSRB = (1<<TXEN) | (1<<RXEN);

// Einstellen des Datenformats: 8 Datenbits, 1 Stoppbit
UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
}

int main(void)
{
uint8_t buffer;

DDRA=0xff; //Port A als Ausgang

// USART initialisieren
uart_init();

while (1)
{
// Warten bis Daten empfangen wurden
while ( !(UCSRA & (1<<RXC)) );

// Empfangsregister auslesen
buffer = UDR;

if(buffer==0x31) //Wenn der PC das Zeichen "1" sendet,
PORTA=0x01; //dann die erste LED ausschalten
else //sonst
PORTA=0x00; //alle LED´s ein

// Warten bis der Sendepuffer frei ist
while ( !( UCSRA & (1<<UDRE)) );

// Daten in den Puffer schreiben und damit senden
UDR = buffer;
}
return 0;
}

Grüße
Leuchtturm