По поводу
baudrate : я делаю так
Код
#define CPU_CLOCK 14745600U /* clock in Hz */
...
#define USART_BAUD_RATE 115200U /* USART baud rate */
...
#define USART_BAUD_RATE_CONST (((CPU_CLOCK / 16) / USART_BAUD_RATE) - 1)
...
...
void USART0_Init(void)
{
/* setup baud rate */
UBRR0L = (UCHAR)(USART0_BAUD_RATE_CONST);
UBRR0H = (UCHAR)(USART0_BAUD_RATE_CONST >> 8);
/* setup frame and enable USART */
UCSR0C = (USART0_FRAME_SETUP);
UCSR0B = ((1 << RXEN0) | (1 << TXEN0) | (1 << TXCIE0));
...
}
PS: ИМХО записи типа UCSR0C = 0хА2 ну оччень не наглядны, особливо если работаешь на нескольких платформах и периодически их меняешь... А мож у мя память девичья