Hola, con el 16F877 a 20 Mhz puedes capturar hasta 12.5 ns, claro que la la precision de este dependera del cristal, yo he utilizado los puertos de captura para medir frecuencias bajas y me ha dado buen resultado lo que si deberias es usar la interrucion que este produce, yo note que es mas preciso que hacer pooling, bueno si no tendrias que migrar a un 18f452 por ejemplo que llega a capturar segun el datasheet 6.5 ns,
saludos
PIKMAN