These code count pulses from one pin of quadrature encoder good and fast.
It use RB0 INT very good.
Now I need idea to implement full reading quadrature encoder A and B inputs with count of pulses and direction indication..
Encoder is with 500 pulses per full revolution.
How - need idea..?
Procesor 16F877 @ 20MHz
Code:
define OSC 20
DEFINE HSER_RCSTA 90h ' Enable serial port & continuous receive
DEFINE HSER_TXSTA 24h ' Enable transmit, BRGH = 1
DEFINE HSER_SPBRG 64 ' 19200 Baud @ 20MHz, 0.16%
DEFINE HSER_CLROERR 1 ' Clear overflow automatically
ADCON1 = 7
TRISB = %00000011
a var word
a = 0
INTCON = %10010000 ; Enable INTE RB0 interrupt $90
INCLUDE "DT_INTS-14.bas"
INCLUDE "ReEnterPBP.bas"
ASM
INT_LIST macro ; IntSource, Label, Type, ResetFlag?
INT_Handler INT_INT, _TEST, PBP, yes
endm
INT_CREATE ; Creates the interrupt processor
ENDASM
Main:
if a >= 5000 then
a = 0
endif
hserout [ dec a ]
pause 100
GOTO Main
'---[INT_INT - interrupt handler]------------------------------------------
TEST:
a = a + 1
@ INT_RETURN
Regards Robert
Bookmarks