Tenes que usar interrupciones, con delays no va a haber forma que obtengas un buen valor.
Podrias usar el modulo CCP el cual mediria el tiempo, y conectas los 2 "sensores" al pin de entrada del CCP.
La otra es un timer + usar Rb0 y el mismo objetivo, . En fin todas interrupciones queda en vos averiguar como funcionan los modulos y que prvecho le podes sacar, ademas de buscar como se programa una interrupcion y se habilita.