Habe grad mal fix drübergeschaut.

Das hier
if (getStopwatch3() <1000 || getStopwatch3() >6000)
{move_state= 0;
}
wird immer ausgeführt!


Damit wird der Teil hier:

case 0:
rotate(50,RIGHT,90,NON_BLOCKING);
move_state= 2;
break;


auch dauernd ausgeführt denn das move_state=2 hat solange keinen Effekt wie die Stopwatch3 nicht bei 1000 angekommen ist.


ir_ende ist wohl zu beginn false also wird ständig das hier:
if (!(ir_ende))
{stopStopwatch3();
writeString_P("ir ende gleich false\n");}

aufgerufen. Also läuft die Stopwatch3 nicht.

--> RP6 dreht dauerhaft.

Formatier den Code in Zukunft mal übersichtlicher dann sieht man sowas auch leichter

MfG,
SlyD