Hi JoeM,
Der Timer wird nur auf 0 gesetzt... Startet der automatisch wieder ?
Der Timer wird mit "Config Timer", genauer mit der Angabe von Prescaler gestartet. Ich lasse den einfach immer durchlaufen und stoppe den nicht. Nur wenn die Messung beginnt, muß er natürlich initialisiert werden, weil man in dem Augenblick nicht weis, wo er gerade ist. Wenn dann die fallende Flanke kommt, wird einfach der augenblickliche Wert gesichert. Timer kann ruhig weiterlaufen. Um den auf 0 zu setzten muß er nicht stehen.

Bei dem Sensor habe ich noch Unklarheiten. In dem von Dir verlinkten Datenblatt steht, daß wenn kein Objekt erkannt wurde, der Echoimpuls 200ms lang sein würde, man aber schon nach 20ms eine neue Messung starten kann. In anderen Datenblättern zum hc-sr04 findet man die Angabe von 38ms.
Wie verhält er sich tatsächlich?

Außerdem ist mir nicht klar, warum man nur 50 Messungen pro Sekunde machen können soll. Plausibler erscheint mir da, daß man nach Ende des Echoimpulses noch ca. 10µs warten soll, bevor man eine neue Messung starten kann.

Also vor dem "perfekten" Programm sind noch ein paar Fragen zu klären. Zunächst aber erstmal überhaupt was sinnvolles, reproduzierbares messen. Falls Du was hast, poste mal ein paar Werte mit den dazugehörenden, per Zentimetermaß gemessenen Entfernungen.

Gruß
Searcher