danke für die schnelle antwort. jetzt hab ich es mal so abgeändert:

Code:
void RP6_Bewegung(void)
{if (ir_hindernis)
	{
	
if (!(ir_ende))
	{stopStopwatch3();
	writeString_P("ir ende gleich false\n");}
	
	
	
if (getStopwatch3() <1000 || getStopwatch3() >6000)
	{rotate(50,RIGHT,90,true);
	}
	
 if ((getStopwatch3() >1000 && getStopwatch3() <2000)||(getStopwatch3()>5000 && getStopwatch3() <6000))	
	{rotate(50,RIGHT,45,true);
	}
	
if (isMovementComplete())
	{ir_ende= true;}
	
if (ir_ende)
	{startStopwatch3();
	writeString_P("ir ende gleich true\n");}
	
	
}}
aber das ergebnis ist das gleiche wie vorher. der rp6 führt die rotate bewegung korrekt bis zum ende aus aber die ir_ende variable wird nicht auf true gesetzt.
was ist noch falsch?

mfg