Цитата(_Ie0nid @ Sep 20 2008, 08:19)

Добрый день. Второй день никак не могу взять в толк. Я вкурсе что эти регистры по одному и тому же адресу. НО... Делаю все по книге. Изменяю содержимое регистра UBRRh, затем записываю 1 в старший разряд UCSRC, чтобы изменять UCSRC. И тут, когда я начинаю записывать содержимое UCSRC, AVR студия показывает одновременное изменение UBRRH. Что не так, или может так и должно быть.
Попробуйте делать наоборот: сначала инициализировать UCSRA/B/C а потом UBRRH/UBRRL
Была проблема с установкой UBRRH/UBRRL пока не перенёс инициализацию этих регистров после инициализации UCSRA/B/C
Код
void UART_Init(void)
{
__disable_interrupt();
uart_status = uart_busy;
//настройка регистров управления
UCSRA = (1<<RXC)|(1<<TXC); //
UCSRB =(1<<RXCIE)|(1<<TXCIE)|(1<<RXEN)|(1<<TXEN); //
UCSRC = (1<<URSEL)|(1<<UPM1)|(1<<UPM0)|(1<<UCSZ1)|(1<<UCSZ0); //
//настройка предделителя частоты
UBRRH = 0x00;
UBRRL = UBRR_INI; //
}