Квадратурный счетчик для PIC16

Привет All
Kто может поделиться исходником квадратурного счетчика (16-bit) для PIC16.
Интересует полная программная реализация счета с энкодера. Импульсы с
энкодера заведены на int portb<7:6>. Hеобходим минимальный код реализации.
Может, кто-то уже писал и готов поделиться исходником.
С Уважением Евгений.
Удачу надо не ждать, а делать.
Reply to
Evgeniy Dontsov
Loading thread data ...
Hi Evgeniy, hope you are having a nice day!
06 Дек 04, Evgeniy Dontsov wrote to All:
ED> Kто может поделиться исходником квадратурного счетчика (16-bit) для ED> PIC16. Интересует полная программная реализация счета с энкодера. ED> Импульсы с энкодера заведены на int portb<7:6>. Hеобходим минимальный ED> код реализации. Может, кто-то уже писал и готов поделиться исходником.
В этом примере датчик подключен к RB4, RB5. Думаю как переделать для твоего случая понятно.
_portb equ 0x27 ; копия порта B _new_val equ 0x28 _old_val equ 0x29 _dup equ 0x2a ; (word) текущее значение углового датчика
;------------------------------------------------ _dup_tbl addwf PCL,F retlw 0 retlw -1 retlw +1 retlw 0 ; неизвестное состояние retlw +1 retlw 0 retlw 0 ; неизвестное состояние retlw -1 retlw -1 retlw 0 ; неизвестное состояние retlw 0 retlw +1 retlw 0 ; неизвестное состояние retlw +1 retlw -1 retlw 0
;================================================ ; прерывание от углового датчика ;------------------------------------------------ _rb_int: movf PORTB,W bcf INTCON,RBIF movwf _portb movwf _new_val rrf _new_val,F rrf _new_val,W andlw B'00001100' iorwf _old_val,W call _dup_tbl addwf _dup,F btfsc STATUS,C incf _dup+1,F andlw B'10000000' btfss STATUS,Z decf _dup+1,F swapf _portb,W andlw B'00000011' movwf _old_val return
WBR, AVB
Reply to
Alexey V Bugrov

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.