Hi,

Hier Codes für den Mega32 UART:

hier drei Funktionen (uart.c):

Code:
void UART_init(void){  
    UBRRL |= (uint8_t) UART_BAUD_SELECT; 
	UCSRB = (1<<RXCIE)|(1<<RXEN)|(1<<TXEN);
	UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
} 

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

void UART_transmit_string(uint8_t *string){ 
    while(!(UCSRA & (1<<UDRE)));
	while( *string){ UART_transmit (*string++); }
}
UART_init(); Den UART Einschalten, hier wird auch der Empfangsinterrupt aktiviert. Dein Hauptprogramm muss dann so aussehen:

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

// Programm-Includes
#include <uart.c>   // Oder die obigen Funktionen hinschreiben...

SIGNAL( SIG_UART_RECV ) { /*hier was beim Enpfang geschehen soll*/ } 

int main (void){

sei();     // Interrups global aktivieren
UART_init();   // UART init funktion ausführen


while(1){
 /*HAUPTSCHLEIFE*/

}
}