
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




