В чем ошибка при инициализации порта?
Ответ:
[Вернуться в категорию "Вопросы и ответы по программированию на C для микроконтроллеров PIC."]
//эти четыре строки правильные #define INPUT 1 #define OUTPUT 0 #define DATA RB1 #define DATA _DIRECTION TRISB0
// метод 1 - вначале направление, потом значение в порт (правильно!) DATA _DIRECTION=OUTPUT; DelayUs(10); // задержка 10 мкс DATA =1;
// метод 2 - вначале значение порта, потом направление (НЕправильно!) // ошибка - значение порта может остаться в 0 ! DATA =1; DelayUs(10); // задержка 10 мкс DATA _DIRECTION=OUTPUT;
Два способа установки описаны выше, первый правильный, а второй нет. Если используется второй способ, порт DATA должен быть установлен в 1, но пока порт остается в режиме ввода, он может быть изменен опять в 0, если на входе порта присутствует 0. Когда порт будет настроен на вывод, его значение может быть как 0, так и 1.
Эта ситуация достаточно подробно описана в руководствах по микроконтроллерам PIC. Правило: если меняется направление работы порта ввод => вывод, всегда вначале устанавливается направление порта, а затем значение.
[Вопросы и ответы по программированию на C для микроконтроллеров PIC.]
|