also der Code:
Code:
#include <stdlib.h>
#include <avr/io.h>
#include <stdio.h>
#include <stdint.h> 

#define UART_BAUD_RATE 9600  // 9600 Baud
 
int main(void)
{
unsigned long x,y;

UCSR0B |= (1<<TXEN0);			// UART TX einschalten
UCSR0C |= (1<<UMSEL00)|(3<<UCSZ00);	// Asynchron 8N1 

UBRR0 = F_CPU / (UART_BAUD_RATE * 16L) - 1;


   while (1) {
	  while (!(UCSR0A & (1<<UDRE0))); /* warten bis Senden moeglich                   */
      UDR0 = 'x';                    /* schreibt das Zeichen x auf die Schnittstelle */
	  for(x=0;x<100000;x++)y++;
	  printf("test");				/*nur zum test*/
	  for(x=0;x<100000;x++)y++;
   }
 
   return 0; // never reached 
}

Wegen dem nicht bekanntem Register vermute ich mal, der Controllername ist nicht richtig eingestellt, kann man im Makefile bei MCU angeben.
Dann werden mit #include <avr/io.h> auch die richtigen Namen eingebunden.

Beim Mega168 heisst Die UART UART0, deswegen muss man das auch im Namen angeben. In diesem Fall dann UCSR0B !
hab sie nur falsch benannt, danke für den Tipp

der AVR Programmer ist ein:
Found programmer: Id = "AVR ISP"; type = S
Software Version = 3.9; Hardware Version = 1.2

Ich programmiere im Programmers Notepad und programmiere auf dem AVR mit avrDude.

Bei dem Code oben kennt er nun alle Variablen...Programm läuft auch, aber ich empfange keine Daten im Hyperterminal...habe 8N1 eingestellt.
die Frequenz des Boards liegt übrigens ohne ändern der Fusebits bei 8MHz standardmäßig, jedenfalls bei mir.

Ist die Baudrate so richtig errechnet?