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 Schleife
Code:
while(!bumper_left && !bumper_right){...}
Jedoch 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.

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:
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;
}
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.