[an error occurred while processing this directive]
Ответ: Я так делал
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено CTAC 25 сентября 2002 г. 09:54
В ответ на: Спасибо. Этим же путем и иду.. отправлено Андрей Сорокин 24 сентября 2002 г. 23:16

P_CHA, P_CHB - ноги МК, к которым подключены выходы энкодера, причем P_CHA - на внешнее прерывание 1


Extint1:
Push Psw
Push Acc
Mov A,#10
Int1_1:
Jb P_CHA,Int1_0
Djnz A,Int1_1 ;пока не обнулиться счетчик
Sjmp Int1_2 ;ждем установления низкого уровня
Int1_0:
Inc A ;уровень высокий - откат счетчика
Cjne A,#15,Int1_1 ;'ждем слишком долго - выход
Pop Acc
Pop Psw
Reti
Int1_2:
Jb {P_CHB},Int1_3 ;Определим направление вращения
Inc {NcInc} ;Вправо - увеличим счетчик увеличивающих щелчков
Sjmp Int1_4
Int1_3:
Inc {NcDec} ;Вправо - увеличим счетчик уменьшающих щелчков
Int1_4:
Setb {NewNC} ;Ставим бит "Было врашение"
Pop Acc
Pop Psw
Reti

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru