Всем привет!
Пытаюсь заставить работать UART0 на Mega162, но не получается

Если смотреть виндовым терминалом, то при настройке COM на нужную скорость, он ничего не принимает - если на меньшей, то всякие крякозябры. Если смотреть COM Port Toolkit, то на нужной скорости принимаются одни 0. Сам UART вроде правильно настроил, уже много вариантов перепробовал - все равно не корректно работает

UBRR0L = ((int)((float)XTAL_FREQ/16/9600+0.5)-1); //set baud rate lo
UBRR0H = ((int)((float)XTAL_FREQ/16/9600+0.5)-1) >> 8; //set baud rate hi
UCSR0B = (1<<RXCIE0) + (1<<RXEN0) + (1<<TXEN0);
UCSR0C = (1<<URSEL0) + (1<<UCSZ01)+(1<<UCSZ00);
Кварц 14745600.
В UBRR0L записывается 95 - как раз как в даташите рекомендуют для этого кварца при скорости 9600.
Вот сама отправка :
while ( !(UCSR0A & (1<<UDRE0)) ) ;
UDR0 = data;
while ( !(UCSR0A & (1<<TXC0)) ) ;
Мож кто чет подскажет - раньше отлаживал просто - смотрел приходят какие-то данные или нет, а ща уже конкретней нужно смотреть что именно приходит..