Последовательность команд для atmega8
Последовательность команд для atmega8
Скажите, почему допустив этой постой программе сначала обнуляется весь порт, а только потом задается на выход, ведь если он был задан на вход, то та же команда отключала внутренние резисторы, если не ошибаюсь, как тогда контроллер понимает при выполнении этой команды выключать(включать )выводы порта или не подключать(или включать) резисторы http://blablacode.ru/микроконтроллеры/п ... mega8.html
- Z_h_e
- Собутыльник Кота
- Сообщения: 2708
- Зарегистрирован: Сб май 14, 2011 21:16:04
- Откуда: г. Чайковский
Re: Последовательность команд для atmega8
Если порт настроен как выход, то значение PORTX соответствует значениям на выходе побитно. Если переключить порт на вход, то значения битов PORTX будут соответствовать подтянут выход к питанию или находится в состоянии высокого импеданса и сам по себе этот регистр не изменится.
Если не ошибаюсь, то регистр PORTX при сбросе инициализируется нулями, надо смотреть даташит. Если это так, то код для инициализации избыточен. Но если задача не критична к времени выполнения, иногда такие вещи нужно ставить. Меньше ошибок из-за человеческого фактора.
Если не ошибаюсь, то регистр PORTX при сбросе инициализируется нулями, надо смотреть даташит. Если это так, то код
Код: Выделить всё
PORTD=0x00;- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: Последовательность команд для atmega8
Код: Выделить всё
PORTD=0x00; //Выставляем все выходы порта D на 0, то есть, выключаем весь порт D
DDRD=0xFF; //Делаем порт D, как выход, чтобы на выходах порта было напряжение 5ВКаменты убили. Горе-учителя, млин.
Docendo discimus
Re: Последовательность команд для atmega8
В той программе идет сначала присвоение выводам порта логических значений, как микроконтроллер выполняя эту команду понимает что делать(подавать напряжение или нет или подтягивать резистор или не подтягивать), если выводы порта еще даже не объявлены как выходы или входы?
- Z_h_e
- Собутыльник Кота
- Сообщения: 2708
- Зарегистрирован: Сб май 14, 2011 21:16:04
- Откуда: г. Чайковский
Re: Последовательность команд для atmega8
Вам нужно понять архитектуру контроллера на аппаратном уровне. В даташите функциональная схема портов достаточно понятна. В этой программе не " идет сначала присвоение выводам порта логических значений". Присваиваться значение регистру с мнемоникой PORTD, у которого есть реальное место в адресном пространстве карты памяти контроллера.
