CCP1 no modo Capture

Estou tentando usar o CCP1 no modo de CAPTURE do PIC 16F877A para ler um sensor e não estou conseguindo. Nem entrar na rotina de interrupção está entrando(testei no proteus) Estou usando o CCS. akguem pode me ajudar?
- Código: Selecionar todos
#int_CCP1
CCP1_isr()
{
if(cambio == 0)
{
TFS = CCP_1;
setup_ccp1(CCP_CAPTURE_FE); // Configura para pegar a borda de descida
cambio=1;
}
else
{
TFB = CCP_1;
setup_ccp1(CCP_CAPTURE_RE); // Configura para pegar a borda de subida
cambio = 0;
if(novopulso == 0)
{
novopulso = 1;
}
}
clear_interrupt(int_CCP1);
}
void main()
{
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(FALSE);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_INTERNAL);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
enable_interrupts(INT_EXT);
enable_interrupts(INT_CCP1);
setup_ccp1(CCP_CAPTURE_RE);
enable_interrupts(GLOBAL);
restart_wdt();
i = 0;
while (TRUE)
{
restart_wdt();
if(novopulso)
{
TF = ( TFB - TFS );
FQ1 = TF * 0.2;
printf ("\nCCP1 1 %1.0f ", FQ1 );
novopulso = 0;
}
}
}
void lersensor1(void)
{
int ka = 0;
novopulso = 1;
output_low(pin_c2);
set_tris_c(0b10111110); // set direction to be output
enable_interrupts(INT_CCP1);
setup_ccp1(CCP_CAPTURE_RE);
delay_us(50);
}