Code:
__task void main()
{
  init_hw_uart(); // 19200 @3.686 MHz

  __enable_interrupt();

  while(1);
}


void init_hw_uart()
{
// Set Baudrate
UBRRH = 0x00;
UBRRL = 0x0B;
// Enable receiver and transmitter
UCSRB |= (1<<RXEN)|(1<<TXEN)|(1<<RXCIE);
// Set frame format: 8data bit , 1 Stop Bit
UCSRC |= (1<<UCSZ1)|(1<<UCSZ0);
}


void transmit_byte(unsigned char data)
{
// Put data into buffer, sends the data
UDR = data;
}

#pragma vector=USART_RXC_vect
__interrupt void UART_RX_interrupt(void)
{
  DDRB |= (1<<PB0); // Status LED initialization
  PORTB ^= (1<<PORTB0);		// toggle status LED

  unsigned char data;

  data = UDR; //receive data

  transmit_byte(data); // echo data
}
siehst du da irgndwo einen Fehler ?