приветствую. ну не знаю как вы там а я как раз столкнулся таки с такой проблемой как в заголовке темы именно с контроллером atmega128.
суть проблемы в чём пишу программу (Codevision 2.05.0) в программе надо будет отключать альтернативные функции (usart0 Rx Tx) и использовать эти выводы как цифровые выходы.
Вот так например:
UCSR0B=0x00; // выкл приёмник передатчик uart0
PORTE=0x00; // на всём PORTE = 0
DDRE=0xFF; // используем как выход
после этого весь порт Е (PORTE) переходит как и надо в 0 кроме выход PORTE.1 это вывод (usart0 Tx) на нём остаётся уровень 1 ((((
Читал даташит на него там надписано что передатчик (Tx) выключается не сразу после записи в регистр его отключения 1 и пока всё передаст он в роди но я ничего не передаю.
Причём мною было замечено что при инициализации контроллера если написано так: то работает
UCSR0B=0x00; // выкл приёмник передатчик uart0
PORTE=0x00; // на всём PORTE = 0
DDRE=0xFF; // используем как выход
а если так:
UCSR0B=0x98; // ВКЛ приёмник передатчик uart0 при инициализации
UCSR0B=0x00; // и тут же выкл приёмник передатчик uart0
PORTE=0x00; // на всём PORTE = 0
DDRE=0xFF; // используем как выход
то на выходе все нули кроме вывода Tx на нём 1 остаётся.
Так как правильно в программе отключить UART и использовать его ноги как цифровые выходы????? кто знает помогите великодушно пожалуйста