@RobotMichi:
Du kannst auch z.B. die timer-Variable nehmen.
Die wird beim RP6 alle 100us hochgezählt, so dass du bei einer max. Impulslänge des SRF05 von 25ms Werte von 1..250 (also 8 Bit) erreichen kannst. Das ist eine Auflösung von ca. 1,6cm pro Digit.
Also: In einer Schleife auf die 1. Flanke warten, timer-Wert 1 speichern (uint16_t), auf die 2. Flanke warten, timer-Wert 2 speichern. Wert = Timer-Wert 2 - Timer-Wert 1