Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
Переключение ноги ATMEGA выход-вход-выход
Отправлено
EagleB3 (109.188.23.240) 12 марта 2010, г. 12:42
Никогда еще не доводилось, а тут вот на тебе...
Одна из ног ATMEGA8535 должна уметь работать то на выход, то на вход.
написал я вот такой код (для CodeVisionAVR):
PORTB.2 = 1;
CSPin = 1; //Поставили периферию режим OutputEnable
DDRB=0b00010010; //Переводим PORTB.2 (00000100) в режим входа,
//Сразу имеем на ней значение первого бита состояния
State0 = PINB.2
CLKPin = 0; //Такт
CLKPin = 1; //Такт
State1 = PINB.2
CLKPin = 0; //Такт
CLKPin = 1; //Такт
State2 = PINB.2
CLKPin = 0; //Такт
CLKPin = 1; //Такт
CSPin = 0; //Выход из режима OutputEnable -> режим InputEnable
DDRB=0b000110110; //Переводим PORTB.2 (00000100) в режим выхода
PORTB.2 = 0; //Начинаем подготовку к отправке команды
Вопрос: я имею право в программе переключать направление выходов, переопределяя DDRB? Если да - то я все сделал правильно? Может быть в это время (или после этого...) надо что-то запретить/разрешить/почистить?
Составить ответ | Вернуться на конференцию
Ответы
- Спасибо! - EagleB3 (12.03.2010, 13:20:3 109.188.63.230, пустое)
- Очень не хочется попалить периферийную микрушку... И не уверен в своем английском... :( - EagleB3 (12.03.2010, 13:07:10 109.188.26.185, пустое)
- (+) + прищепка - Codavr (12.03.2010, 13:21:32 91.196.34.210, 431 байт)
- Спасибо! - EagleB3 (12.03.2010, 19:46:57 79.164.27.183, пустое)
- В даташите меговом даже схема внутрення разрисована в подробностях. Предпочитаешь чтобы за тебя дядя разбирался? - Codavr (12.03.2010, 12:58:9 91.196.34.210, пустое)