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