immer wenn ich jetzt "warte" schreibe, meine ich nicht nix tun wie in einer _delay_ms funktion, sonder was anderes tun, zB fahren, andere entfernungswerte abarbeiten, geschwindigkeiten berechnen, usw...

- Nachdem ich den Befehl zum drehen gegeben habe, warte ich bis die neue position erreicht ist
- dann warte ich 80ms
- dann lese ich den AD-wert ein und berechne die entfernung (dauert angenommen 1ms)
- dann arbeite ich das restliche programm ab (i2c ausgaben, eingaben, fahren, andere entfernungswerte abarbeiten, geschwindigkeiten berechnen, usw...)
Das dauert vll auch ein paar ms.
Dann ist der zaehler sagen wir bei 85.

- es wird wieder der Befehl zum drehen gegeben
- es wird gewartet, bis die position erreicht ist (ca. 100ms)
Der zaehler ist beim wert 185.

- jetzt sollte er 80ms warten, das tut er aber nicht, weil die Abfrage lautet:

if(Zähler >=80)
{ lese AD-wert ein und berechne entfernung
}

...und zähler ist bei 185, also >=80
er liest also gleich den neuen AD-wert ein, obwohl er 80 ms warten sollte.

lg Christoph