I have a problem with CCP module, i must to measure a period from 1ms to 5 ms.
This is my program using CCP interrupt but it don't work fine. Can you help me please
Thank you in advance.
DEFINE OSC 20
T1CON=%00000000
CCP1CON=%00000000
Speed var word
state var bit
TMR1L=0 ' Reset Timer
TMR1H=0 ' Remember Timer is OFF
pir1.2=0 ' Reset Capture Flag
pir1.0=0
CCP1CON = %00000101
' Interrupt
INTCON = %11000000 'Global interrup enable -
PIE1=%00101111
ON INTERRUPT GoTo interr
mainloop:
GoTo mainloop
'Gestione di Interrupt
Disable
interr:
'************************************
'Interrupt Speed
If pir1.2=1 then
If state=0 then
T1CON.0=1 ' Enable Timer
pir1.2=0 ' Reset Capture Flag
state =1
else
Speed.lowbyte = CCPR1L
Speed.highbyte = CCPR1H
' Store the captured value in period variable
T1CON.0=0 ' Timer is OFF
CCP1CON=0 ' Capture is OFF
TMR1L=0 ' Reset Timer
TMR1H=0 ' Remember Timer is OFF
pir1.2=0 ' Reset Capture Flag
CCP1CON = %00000100
state=0
endif
endif
Resume
Enable
Bookmarks