Cuidado con las interrupciones que pueden ser MUY LENTAS para determinados procesos, y según dices necesitas precisiones en el orden de los us, entrar a una subrutina de atención a IT puede llevarle al PIC hasta 32us y luego lo que consumas dentro de la IT para atender la ocurrencia del evento (echar a andar un TIMER por ejemplo y pararlo luego) así que cuidado con este método porque puede que no te sirva. Un modo muy muy rápido es utilizar los módulos de captura y comparación, por ejemplo:
Si tienes un evento que quieres medir cuanto dura y creas un circuito que de un pulso de duración igual al evento, puedes utilizar un PIC con dos CCP uno que capture la subida y otro la bajada, éste último que te genere una IT, así cuando llegas a la subrutina de atención a la IT del CCP, basta con que calcules, mediante los registros de captura del los temporizadores, cuanto ha durado el evento, es un método muy rápido y eficiente, claro que el evento no debe durar más que lo el TIMER demora en dar una vuelta completa (no me refiero al cruce por cero sino a una vuelta completa desde la primera captura).
Hace unos días un estudiante me vino con la misma duda, y quedó claro que el método era esete de los CCP, porque necesitaba una resolución de 2us, que era la duración mínima que podía tener el evento que quería medir, así que ningún método funcionaba, excepto este que te comento. Las IT externas, conjugadas con temporizadores, tal como has comentado no habían tenido el desempeño esperado, incluso resultaron más lentas que la encuesta (claro que el procesador tendría que hacer solamente el trabajo de encuestar constantemente un pin del PIC y eso no es lo correcto)
Saludos
Reinier