| ??? 05/29/03 20:14 Read: times |
#46956 - RE: reading a rotary encoder Responding to: ???'s previous message |
This code is available on the web...
di2729.txt ;************************************************************************************************** ; LISTING 1 - PAL SOFTWARE FOR ENCODER PREPROCESSOR ; ; "Preprocessor for rotary encoder uses PAL," EDN, Aug 2, 2001, pg 100 ; ;************************************************************************************************** "INPUTS STROBE PIN 1; A PIN 2; " ENCODER B PIN 3; " ENCODER "OUTPUTS "DELAYED ENCODER INPUTS ADEL PIN 14 istype 'reg_d'; BDEL PIN 15 istype 'reg_d'; "FORWARD AND REVERSE INTERRUPTS FORWARD PIN 18 ISTYPE 'REG_D'; "FORWARD IRQ TO CPU REVERSE PIN 19 ISTYPE 'REG_D'; "REVERSE IRQ TO CPU EQUATIONS "1. LATCH 2 INPUTS ON RISING EDGE OF STROBE ADEL.CLK = STROBE; ADEL.D = A1; BDEL.CLK = STROBE; BDEL.D = B1; "2. COMBINE TO FORM IRQ !FORWARD.CLK = STROBE; !FORWARD.D = (A & ADEL & !B & BDEL) # (!A & ADEL & B &!BDEL) # (!A & !ADEL & B & !BDEL) # (A & !ADEL & B & BDEL) !REVERSE.CLK = STROBE; !REVERSE.D = (!A & ADEL & B & BDEL) # (!A & !ADEL & !B & BDEL) # (A & !ADEL & !B & !BDEL) # (A & ADEL & B & !BDEL) END |



