Ist ja interessant.

Also der Code der nun drauf ist:

Code:
#include <avr/io.h> 
#include <avr/interrupt.h> 
#include <avr/signal.h> 

#define F_CPU 7372800 
#define USART_BAUD_RATE 115200 
#define USART_BAUD_SELECT (F_CPU/(USART_BAUD_RATE*16L)-1) 

volatile static uint8_t data;

void USART_init(void){  

	UBRRH = 0;
    UBRRL = (uint8_t) USART_BAUD_SELECT; 
	
	/* Aktivieren des Empfängers, des Senders und des "Daten empfangen"-Interrupts */
	UCSRB = (1<<RXCIE)|(1<<RXEN)|(1<<TXEN);

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

	data = UDR;

} 

void USART_transmit(uint8_t c){ 
   while(!(UCSRA & (1<<UDRE)));
   UDR = c; 
} 

void USART_transmit_string(uint8_t *string){ 
    while(!(UCSRA & (1<<UDRE)));
	while( *string){ USART_transmit (*string++); }
}



/*
SIGNAL( SIG_USART_RECV ) 
{ 
    
   data = UDR;  

} 
*/

int main (void)
{
// D A T E N R I C H T U N G :
//===============================================

//	PORTA Pin: 76543210	  ( 0 = Eingang/Pullup aus, 1= Ausgang/Pullup ein )
    DDRA   = 0b11111111;	//
    PORTA  = 0b00000000;	// 

//	PORTB Pin: 76543210	  ( 0 = Eingang/Pullup aus, 1= Ausgang/Pullup ein )	
    DDRB   = 0b00000000;	//
	PORTB  = 0b00000000;	//
	
//	PORTC Pin: 76543210	  ( 0 = Eingang/Pullup aus, 1= Ausgang/Pullup ein )
    DDRC   = 0b00000000;	//
	PORTC  = 0b11111111;	//
	
//	PORTD Pin: 76543210	  ( 0 = Eingang/Pullup aus, 1= Ausgang/Pullup ein )
    DDRD   = 0b11111111;	//
	PORTD  = 0b00000000;	//
	
	

 
USART_init();
USART_transmit_string("USART INIT - OK  ");
 
 sei();
 
 uint8_t data_alt;
 
while (1) { 

PORTA = UCSRA;
PORTD = data;

/*
if( data != data_alt ){

USART_transmit(data);

data_alt = data;

}
*/


}
}
Nun...

1. ich schalte ein
2. PC empfang "USART Init - OK"
3. Ich sende
4. PC empfang"USART Init - OK"

Wenn ich meine Gedanken mal preisgeben darf: "BAHNHOF"!