La opcion de usar el TIMER1 y el CCP es muy buena, pero es util si y solo si tienes un pic con ese tipo de registros, a la hora de utilizar un pic sin ese tipo de registros es mejor utilizar lenguaje asambler por ejemplo:
Prueba1
btfss PORTB,1 ;saltar si PORTB.1=1
goto Prueba1 ;Si PORTB.1=0 regresa a Prueba1 y compruba de nuevo el bit
Prueba2
incf contador ;incrementa el registro contador (elejido por el usuario)
;aqui puedes agregar retardos para un tamaño de pulso grande.
btfsc PORTB,1 ;Salta si el PORTB.1=0
goto Prueba2 ;Si PORTB.1=1 regresa a Prueba2 para incrementar el contador
----------- ;aquí continua el codigo
con este codigo puedes lograr contar el tamaño de pulsos de hasta 5us hasta 700us para frecuencias de reloj de 4MHz, sin tener que utilizar entradas analogicas ni timer1.
Este Codigo tambien puede ser introducido en MikroBasic o MikroC con una funcion propia del compilador.