Freeze Anti, во-первых регистры UBRR и UCSRС находятся по одному адресу, посему существует некая последовательность действий, а именно - сначала записывать в регистр UBRR (что в данном случае верно), а вторая - перед записью в регистр UCSRС нужно сначала установить флаг URSEL, т.о. вот так:
Код
UBRRH = 0;
UBRRL = 103;
UCSRC = (1 << URSEL|1 << UCSZ1|1 << UCSZ0);
А в твоём случае скорость устанавливалась скорость непойми какая (самая маленькая) и 5 бит посылка (по умолчанию).
Теперь что касается конфигурации портов - их вообще не нужно трогать, т.к. внутренний мультиплексор при конфигурировании сам законтачивает их на регистр приёмо-передатчика. Всё. При сконфигурированном УСАРТЕ мк уже не важно что находится в соответсвующих регистрах DDRx и PORTx.
Теперь что касается записи:
Код
UCSRB = 0x18; /* Устанавливаем разряды TXEN и RXEN для
активизации USART в режиме ввода/вывода через
выводы 0 и 1 порта D */
Здесь как раз и происходит то, о чём я говорил выше...
Сообщение отредактировал UniBomb - Aug 5 2008, 09:16