Hola, gracias por la ayuda, ya lo intente por interrupcion externa, y en la simulacion se brinca algunos pulsos, tambien ya lo intente utilizando la configuracion de ccp en modo captura, lo intente simplemente viendo si entra a la interrupcion al recibir un cambio de flanco, pero en la simulacion en proteus no hace nada
----------------------------------------------------------------------------------
#include <16F887.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
long rise,fall,pulse_width;
#int_ccp2
void isr()
{
rise = CCP_1;
fall = CCP_2;
pulse_width = fall - rise; // CCP_1 is the time the pulse went high
} // CCP_2 is the time the pulse went low
// pulse_width/(clock/4) is the time
// In order for this to work the ISR
// overhead must be less than the
// low time. For this program the
// overhead is 45 instructions. The
// low time must then be at least
// 9 us.
void main()
{
printf("\n\rHigh time (sampled every second):\n\r");
setup_ccp1(CCP_CAPTURE_RE); // Configure CCP1 to capture rise
setup_ccp2(CCP_CAPTURE_FE); // Configure CCP2 to capture fall
setup_timer_1(T1_INTERNAL); // Start timer 1
enable_interrupts(INT_CCP2); // Setup interrupt on falling edge
enable_interrupts(GLOBAL);
while(TRUE) {
delay_ms(100);
printf("\r%lu us ", ccp_2/5 );
}
}
-----------------------------------------------------
utilice ese codigo simplemente para probar el modo captura del ccp, pero no hace nada, no entra a la interrupcion, quisiera que me dijeran si hay añgun error en el programa, ya que segun yo esta bien, pero no me funciona, lo que creo es que talvez el proteus no puede simular esto,.