Квадратурный счетчик для 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.