hab kijons code genommen:

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

#define SYSCLK      7372800 
#define BAUD      9600UL 
#define UBRR_BAUD   ((SYSCLK/(16*BAUD))-1) 

#define   TRUE   1 
#define   FALSE   0 

// USART initialisieren 
void uart_init(void); 

volatile unsigned char daten_gesendet = TRUE; 
const prog_char* volatile p_string; 

// Zeichenkette im Flashspeicher 
prog_char daten[] = "Hello World!\n"; 

int main(void) 
{ 
   // USART initialisieren 
   uart_init(); 
    
   sei(); 
    
   while (1) 
   { 
      if (daten_gesendet) 
      { 
         // Flag zurücksetzen 
         daten_gesendet = FALSE; 
          
         // Pointer zeigt auf die Daten im Flashspeicher 
         p_string = daten; 
          
         /* Interrupt aktivieren, damit wird sofort zur 
            Interruptroutine gesprungen und das erste Zeichen gesendet. */ 
         UCSRB |= (1<<UDRIE); 
      } 
   } 
} 

void uart_init(void) 
{ 
   // Baudrate einstellen ( Normaler Modus ) 
   UBRRH = (unsigned char) (UBRR_BAUD>>8); 
   UBRRL = (unsigned char) (UBRR_BAUD & 0x00FF); 

   // Aktivieren des Empfängers, des Senders und des "Daten empfangen"-Interrupts 
   UCSRB = (1<<RXEN)|(1<<TXEN); 
    
   // Einstellen des Datenformats: 8 Datenbits, 1 Stoppbit 
   UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);    
} 

/* Interrupt wird ausgelöst sobald der Sendepuffer leer ist */ 
SIGNAL(SIG_UART_DATA) 
{ 
   char buffer = pgm_read_byte(p_string++); 
    
   /* Wenn nicht das Ende der Zeichenkette erreicht wurde, 
      dann weiteres Zeichen senden */ 
   if ( buffer != '\0' ) { 
      UDR = buffer; 
       
   } else { 
      // Flag setzen, das der String gesendet wurde 
      daten_gesendet = TRUE; 
       
      // Interrupt deaktivieren 
      UCSRB &= ~(1<<UDRIE); 
   } 
}
bekomme dann aber beim kompilieren immer folgende fehlermeldung:

Code:
Z:\AVRDevel\Test>make

-------- begin --------
avr-gcc (GCC) 3.4.3
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


Compiling: Test.c
avr-gcc -c -mmcu=atmega162 -I. -gdwarf-2 -DF_CPU=8000000UL  -Os -funsigned-char
-funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-
adhlns=Test.lst  -std=gnu99 -MD -MP -MF .dep/Test.o.d Test.c -o Test.o
Test.c: In function `main':
Test.c:41: error: `UCSRB' undeclared (first use in this function)
Test.c:41: error: (Each undeclared identifier is reported only once
Test.c:41: error: for each function it appears in.)
Test.c:41: error: `UDRIE' undeclared (first use in this function)
Test.c: In function `uart_init':
Test.c:49: error: `UBRRH' undeclared (first use in this function)
Test.c:50: error: `UBRRL' undeclared (first use in this function)
Test.c:53: error: `UCSRB' undeclared (first use in this function)
Test.c:53: error: `RXEN' undeclared (first use in this function)
Test.c:53: error: `TXEN' undeclared (first use in this function)
Test.c:56: error: `UCSRC' undeclared (first use in this function)
Test.c:56: error: `URSEL' undeclared (first use in this function)
Test.c:56: error: `UCSZ1' undeclared (first use in this function)
Test.c:56: error: `UCSZ0' undeclared (first use in this function)
Test.c: At top level:
Test.c:60: warning: `SIG_UART_DATA' appears to be a misspelled signal handler
Test.c: In function `SIG_UART_DATA':
Test.c:67: error: `UDR' undeclared (first use in this function)
Test.c:74: error: `UCSRB' undeclared (first use in this function)
Test.c:74: error: `UDRIE' undeclared (first use in this function)
make: *** [Test.o] Error 1
Woran liegt das jetzt, das erste Beispiel bei dem ich auf ein Regsiter zugefriffen hab ging noch?

das Makefile hab ich übrigens mit MFile erstellt.