Цитата(KIG @ Jul 25 2007, 09:13)

Пытаюсь передать цифру 5 через USART ATmega16 на компьютер в программу Terminal.
void putchar(char ch)
{ while (!(UCSRA&(1<<UDRE)));
UDR=ch;
}
Чтобы принять цифру 5 (как символ), надо послать код азки 0х35, а не код 0х05, как делаете вы.
Поставьте putchar(ch) после while, чтобы в цикле была непрерывная передача, легче смотреть
Цитата(KIG @ Jul 25 2007, 09:13)

void main(void)
{
- - - - - - -
while(1)
{
putchar(0х30);
}
}
Если не поможет, смотрите скорость передачи.