Установите частоту повыше: #define F_CPU 8000000UL
В протеусе тоже надо поменять частоту в настройках контроллера.
Код для настройки порта можно сделать таким:
Код:
void uart_init( void ) {
#define BAUD 9600
#define MYUBRR F_CPU/16/BAUD-1
UBRRH = MYUBRR >> 8;
UBRRL = MYUBRR;
UCSRB = (1<<RXEN)|(1<<TXEN);
UCSRC = ( 1 << URSEL ) | ( 1 << UCSZ1 ) | ( 1 << UCSZ0 );
}
Я внес вышеуказанные изменения в программу - работает.
В приложенном файле измененная программа и файл для протеуса (лежит рядом с hex).
Между прочим, в протеусе можно включить отображение сообщений о работе различных периферийных узлов контроллера. В том числе, отображается частота, на которой работает UART.
_________________
OpenSimpleLidar - проект простого самодельного лидара.