I came up with this code idea (have not tested it yet)
Code:
STATE: 'WAIT FOR ENCODER TO BE MOVED (STATE CHANGE)
X=PORTB.1
Y=PORTB.2
PAUSE 10
X1=PORTB.1
Y1=PORTB.2
IF X<>X1 OR Y<>Y1 THEN GOTO NEXTSTEP
GOTO STATE
NEXTSTEP:
SOMELOOP: 'COUNTER LOOP FOR PULSE LENGTH COUNTING
IF PORTB.1=1 THEN XIN=XIN+1 'X INCREMENT
IF PORTB.2=1 THEN YIN=YIN+1 'Y INCREMENT
IF PORTB.1=0 OR PORTB.2=0 THEN GOTO ANALYZE 'EXIT AND COMPARE LENGTHS
GOTO SOMELOOP
ANALYZE: 'DETERMINE DIRECTION AND INCREMENT CORRESPONDING VARIABLE
IF XIN>YIN THEN
CCW=CCW+1
ELSE
CW=CW+1
ENDIF
XIN=0 'RESET VARIABLES
YIN=0
GOTO STATE
Bookmarks