Danke für die Antwort.
Ich habe einmal ein anderes, etwas einfacheres Programm zum folgen eines kleinen Parcours geschrieben, und würde dort gerne, dass der Roboter dieses Programm solange ausführt, bis beide Bumper durchgedrückt sind. Dies gelingt ja (meistens) mit der SchleifeJedoch funktioniert dies bei mir nicht wie gewollt, und auch wenn ich mit Stopwatches als Schleifenbedingung arbeite gibt es keine Reaktion. Nur in einer Endlosschleife funktioniert das Programm, aber es soll wie schon gesagt auf die Bumper reagieren.Code:while(!bumper_left && !bumper_right){...}
Wo ist mein Denkfehler? und wie kann man dieses Problem umgehen?
Ich wäre euch für Hilfe sehr dankbar.
Grüße Arjen
Das Programm:
Ps. Die Stopwatch1 verwende ich dafür, dass der Roboter nicht soweit vor dem Hindernis anhält, sondern noch enger ranfährt, um einen engeren Parcour zu durchqueren.Code:#include "RP6RobotBaseLib.h" int main (void) { initRobotBase(); board_init(); powerON(); setACSPwrLow(); setLEDs(0b111111); mSleep(2500); setLEDs(0b000000); startStopwatch1(); while(!bumper_left && !bumper_right) { changeDirection(FWD); moveAtSpeed(50,50); while(!obstacle_left && !obstacle_right) { task_RP6System(); } if(obstacle_left) { setStopwatch1(0); while(getStopwatch1() < 2000) { task_RP6System(); } moveAtSpeed(0,0); setLEDs(0b110000); while(obstacle_left) { rotate(50, RIGHT, 10, true); } setLEDs(0b000000); } else if(obstacle_right) { setStopwatch1(0); while(getStopwatch1() < 2000) { task_RP6System(); } moveAtSpeed(0,0); setLEDs(0b000110); while(obstacle_right) { rotate(50, LEFT, 10, true); } setLEDs(0b000000); } } moveAtSpeed(0,0); return 0; }







Zitieren
Lesezeichen