Цитата(DmitriyX @ Mar 4 2005, 21:51)
ldi temp_reg,(1<<URSEL)|(1<<USBS)|(3<<UCSZ0)
out UCSRC,temp_reg
ldi temp_reg,0
out UBRRH,temp_reg
Кто-нибудь сталкивался с такой проблемой? Может быть есть какой-то сигнал, позволяющий разрешать запись в регистры с общей ячейкой памяти? Или что-то еще нужно настроить?
Спасибо огромное заранее за любую информацию!
У меня глюк такой же, и на самом деле UART не работает так, как надо, если
его инициализировать подобным образом.
Дело в том, что контроллерах Atmega8515, Atmega8535, Atmega16 регистры
UBRRH и UCSRC контроля USART имеют один и тож же адрес.
В описании говорится, что для того, чтобы производить запись
в тот или иной регистр, необходимо соответствующим образом
выставлять 7-й бит.
ОДНАКО: при такой записи вне зависимости
от значения седьмого бита запись производится в оба регистра
одновременно.
Рекомендуется не трогать данные регистры. (я обошелся - мне не нужен был такой формат).
А если этого не избежать - то получается ГЛЮК!!! И никуда не деться...
По опыту, значение регистра UBRRH по умолчанию равно 0х00,
регистра UCSRC = 0х06.
Причем на mega16 этого глюка нет!!!