[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
на 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