Hier ist mein aktueller Code:

Code:
#include <iom163v.h>
#include <macros.h>

void port_init(void)
{
 DDRA  = 0x00;// Taster am STK500
 DDRB  = 0xff;//LEDs am STK500
 DDRD  = 0x02;// RXD an PD0 und TXD an PD1
}

//UART0 initialize
// desired baud rate: 9600
// actual: baud rate:9615 (0,2%)
void UART0_init(void)
{
 UBRR   = 0x19; //set baud rate
 UCSRB  = 0xD8; //enable
}

#pragma interrupt_handler UART0_rx_isr:12
void UART0_rx_isr(void)
{
 PORTB=UDR;
}

#pragma interrupt_handler UART0_tx_isr:14
void UART0_tx_isr(void)
{
}

//call this routine to initialize all peripherals
void init_devices(void)
{
 //stop errant interrupts until set up
 CLI(); //disable all interrupts
 port_init();
 UART0_init();

 MCUCR= 0x00; 
 GIMSK= 0x00;
 TIMSK= 0x00; //timer interrupt sources
 SEI(); //re-enable interrupts
 //all peripherals are now initialized
}
int main(void)
{
 init_devices();
 while(1)
 {
  UDR=~PINA;
  }
}