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

Отправлено ah 11 мая 2002 г. 19:34
В ответ на: Ответ: отправлено Jedi 11 мая 2002 г. 14:28


на PIC для работы с CCP
конечно наупрощал, смысл - после сброса по первому фронту имп. запоминается состояние CCPR1, по второму прерыванию определяется разница между предыд. состоянием и настоящим, и запрещается прерывание для дальнейших вычислении


capture

bcf pir1,ccp1if ;сброс флажка
btfss povtor ;если сброшен - значит второй импульс
goto $+7
movf ccpr1h,w
movwf addrh ;на хранение
movf ccpr1l,w
movwf addrl ;на хранение
bcf povtor ;сброс для того чтобы в след раз обойти участок
return

movf addrl,w
subwf ccpr1l,w
btfsc status,c ;проверка на отр. знак
goto $+2
incf addrh,f
movwf buf_per
call peredasa ;передаю мл разряд
movf addrh,w
subwf ccpr1h,w
movwf buf_per
call peredasa ;передаю старший разряд

banksel pie1
bcf pie1,ccp1ie
banksel pir1
bcf pir1,ccp1if
bcf t1con,tmr1on
return

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

Ответы



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

E-mail: info@telesys.ru