danke erstmal, das braucht ein bischen...
ein "zwischen"problem:
- der timer läuft, da werden die sekundenaufgaben aufgerufen, in denen die pingroutine:
gestartet wird.Code:if ((sekunden_tick == 1) && (gemacht_ping_links_flag == 0)) { ping_distanz_links(); Serial.print("Ping: "); Serial.print(uS_links / US_ROUNDTRIP_CM); Serial.println(" cm"); }
in der pingroutine
wird aber das pingergebnis trotz des ping-flags auf 1 "100mal" ausgedruckt. Wieso? Wo muss die flagänderung denn hin? In der loop wird sie ja zuerst auf "0" gesetzt, dann in den sekundenaufgaben abgefragt und letztendlich in der pingroutine wieder auf 1 gesetzt...Code:void ping_distanz_links(void) { uS_links = sonar_links.ping(); gemacht_ping_links_flag = 1; start_ping_links = true; }
Lesezeichen