Hallo

Keine Sorge wegen deines Codes, jeder hier hat mal klein angefangen.

Zu deinem Problem:
Möglicherweise verhindert die blockierende Ausführung von Move und Rotate, dass die Bumber neu eingelesen werden können. Wenn man das Task-System verwendet, sollte man blockierende Funktionen vermeiden.

Anstelle des "true" verwendet man dann besser diese Funktion:

uint8_t isMovementComplete(void)

und der Code würde dann etwa so aussehen:

Code:
...
if(bumper_left) 
  
  {setLEDs(0b111111); 
   move(50, BWD, DIST_MM(100), false);
   while (!isMovementComplete()) task_RP6System();
   setLEDs(0b001111); 
   rotate(90, RIGHT, 70, false);  
   while (!isMovementComplete()) task_RP6System();
   setLEDs(0b001001); 
    
   }
...
So ist gewährleistet, dass alle Task-Funktionen weiterhin ausgeführt werden.

Gruß

mic