Hallo,
warum setzt Du direkte Werte in die UBRR Register ein ?
das ist sowas von Fehleranfällig...

Dazu hat man den Preprozessor erfunden.
Einmal solche Formel erstellen :
Code:
#ifndef F_CPU
#define F_CPU 7342000L
#endif

#define BAUD 9600L

#define UBRR_VAL ((F_CPU+BAUD*8)/(BAUD*16)-1)
Im Code dann
Code:
 UBRRH = UBRR_VAL >> 8;
  UBRRL = UBRR_VAL & 0xFF;
Und gut ist.
In der Zukunkt nur Baudrate und F_CPU anpassen und nie wieder im Dattenblatt nach den Werten gucken.

Gruß Sebastian