Code:
// Die schon gestarteten Stoppuhren werden auf null gesetzt, alle Demos bei 0 starten
      setStopwatch1(0);
      setStopwatch2(0);
      setStopwatch3(0);
      
// Nach "for(c=0;c<6;c++)" hat c den Wert 6. Die folgende Schleife wird solange
// ausgeführt wie c einen Wert != 0 enthält.
      while(c)
      {
// Der Wert in c wird mit Hilfe der LEDs dargestellt.
         setLEDs(1<<c);

// Sind seit dem letzten reseten der Stopwatch1 mehr als 1000ms vergangen?
         if(getStopwatch1()>1000)
         {
// Wenn ja, dann Stopwatch1 wieder auf null setzen und Demo für Servo1 ausführen
            setStopwatch1(0);
// Unter Berücksichtigung der letzten Servoposition die nächste Position laden
           switch(servo1)
            {
               case 38: servo1=30; break;
               case 30: servo1=20; break;
               case 20: servo1=14; break;
               case 14: servo1=21; break;
               case 21: servo1=31; break;
               case 31: servo1=38; break;
            }
         }

// Alle 100ms wird das Demo für Servo2 weitergetaktet
         if(getStopwatch2()>100)
         {
            setStopwatch2(0);
// Servo2 weiterdrehen, wenn Ende Schwenkbereich erreicht ist, wieder neu starten
// Nach jedem Schwenk wird hier c um eins verkleinert bis schlieslich "while(c)"
// nicht mehr erfüült ist und die Demoschleife abgebrochen wird.
            servo2++;
            if (servo2 > 38) { servo2=14; c--; }
         }

         if(getStopwatch3()>300)
         {
            setStopwatch3(0);
// Alle 300ms soll das Servo3 eine Endlage anfahren. Das ist im Video de Beeper
            if (servo3 == 10) servo3=50; else servo3=10;
         }
         task_RP6System(); // Verträglichkeitstest ;)
      }
Verständlicher? Ich befürchte nein