Этот форум работает только в режиме просмотра и поиска.
Действующий форум переведен на новый движок и
находится по адресу
знатокам 16F84
Автор: Владимир (---.surnet.ru)
Дата: 25/09/1999 16:28
Помогите с программированием PICа,
как заставить его работать по следующей логике:
при подаче питания и предварительно нажатой кнопке (RB5 подается "0") программа переходила на одну подпрограмму , а без нажатия - на другую.
Зарание благодарен.
RE: знатокам 16F84
Автор: Xan (194.226.133.---)
Дата: 07/10/1999 13:41
Хмм. Вообще-то, применение PICа предполагает знание ответа. Вот тупой ответ:
Начало программы, всякие инициализации...
Проверим, какой сигнал на RB5 и, если он = 0, то пропустим следующую команду
btfsc PortB, 5
А следующей командой будет переход для обхода (не выполнения) подпрограммы
goto Label1
Значит, если сигнал = 0, то будет вызвана подпрограмма1
call Subr1
После неё надо обойти вторую подпрограмму
goto Label2
А если сигнал = 1, выполнится переход на эту метку
Label1:
и, соответственно, подпрограмма2
call Subr2
А здесь ветви программы снова сходятся в одну
Label2:
Но. Могут быть железные тонкости. Например: питание подано, PIC стартовал, а ёмкость привязанная к кнопке (например длинные провода) ещё не зарядилась до порогового напряжения. PIC, не зависимо от того, нажата кнопка или нет, всегда будет видеть 0.
Могут быть ошибки в инициализации железа ... или просто тупые опучатки в проге ...
А вот конторольный вопрос, который позволяет отличить настоящего программиста от простого человека (это цитата из фильма):
"Сколько будет дважды-два-четыре?"