Bueno, pues al final después de muchas simulaciones, he ideado un método que parece funcionar bien:
Utilizo el Timer 2 y los módulos de captura de captura de entradas IC1 e IC2, donde he conectado como entradas mis señales 1 y 2 respectivamente.
Cuando deseo capturar el desfase, inicio el Timer 2 y habilito IC1.
Cuando se produce el pulso de bajada de la señal 1, el IC1 captura el tiempo del timer, y genera una interrupción, en la cual habilito el IC2.
Cuando se produce el pulso de bajada de la señal 2, el IC2 captura también el tiempo del timer, y genera una interrupción.
En esta segunda interrupción calculo el tiempo de desfase (el leído por el IC2 menos el leído por el IC1), deshabilito los ICs y el Timer2 para poder procesar el dato.
He visto que entre que se produce el pulso en la señal 1 y se empieza a ejecutar el código de su interrupción hay uno intervalo de unos 10-20 ciclos de reloj. Esto puede causar que, si el desfase entre las señales es muy pequeño, para cuando se ha habilitado el IC2 ya haya pasado el pulso de bajada. Así que lo que hago es, una vez calculado el tiempo IC2-IC1, lo comparo con el periodo de la señal. Si es menor que el periodo, el valor que tengo es el desfase. Si es mayor que el periodo, es que se le escapó el primer pulso y el que ha capturado es el segundo, así que le resto el valor del periodo y ya tengo el desfase.
No ha sido fácil, pero yo creo que así debería funcionar. La próxima semana lo probaré en el circuito, a ver qué resultado obtengo. Gracias de nuevo a todos por la ayuda.