Und noch was. Der Ablauf einer Messung beim srf04:
1.Trigger-Puls-Eingang länger als 10us auf high startet Messung.
2. Sendet 200us langen 40kHz Ultraschallburst und Echo-Ausgang wird auf high gelegt.
3. Erste hereinkommende Echo schaltet Echo-Trigger-Ausgang auf low.
Aber wird erst der 200us lange Burst gesendet und dann der Echo-Trigger-Ausgang auf high gesetzt oder wird er davor auf high gesetzt.
Wird er nämlich danach erst auf high gesetzt muss man in der Funktion zeit_messung_us() nach der Zeile
US_PORT&=~(1<<US_PIN); // Trigger-Puls Eingang wieder auf low
noch 200us warten,da sonst diese Zeile
while ( MESS_PIN & (1<<MESS_BIT));
den Zustand des Ports abfrägt bevor dieser überhaupt high wurde.
Hoffe man konnte es verstehn.
Gruß Muraad