Отключение пина
- Войдите на сайт для отправки комментариев
Ср, 26/02/2014 - 21:13
Интересует такой вопрос: можно ли програмно отключать один или несколько пинов на AVR в теле функции но не в void setup()?
Интересует такой вопрос: можно ли програмно отключать один или несколько пинов на AVR в теле функции но не в void setup()?
Можно. setup и loop это условное деление. первая исполняется только один раз при сбросе вторая постояннно повторяется. Управляющие команды просто передают параметры в соответствующие регистры микроконтроллера - и вход становится выходом.
Можно сделать все в любой момент, но отключить нельзя :) Можно отломить !
Короче, пин отключить нельзя, можно настроить на вход, можно на выход, можно включить-отключить подтяжку, можно задействовать по второму-третьему функционалу ( для аппаратных протоколов, ацп, прерывание и тд).
алгоритм такой: если brake_pin - LOW то при нажатии кнопки, включается только ignition_pin, и при последующем нажатии отключается. теперь, если brake_pin - HIGH, при нажатии кнопки включится ignition_pin и затем через 500мс starter_pin, который отключится как только alt_pin станет HIGH, и остается включенным только ignition_pin, который и отключится при последующем нажатии кнопки.
проблема вот в чем: если нажать на кнопку и отключить ignition_pin, и brake_pin в этот момент в состоянии HIGH, то ignition_pin выключается и через пол секунды включается только sarter_pin, который должен включатся только после ignition_pin и только если brake_pin ==HIGH. если нажать на кнопку и brake_pin в этот момент LOW, то starter_pin не включается, то есть работает корректно. подкиньте идею, что не так в скетче?