Hallo

Da hast du eine meiner Jugendsünden ausgegraben. Das waren meine ersten Versuche mit Servos :)

Vielleicht funktioniert es so, ich habe es nicht getestet:
Code:
#include "RP6RobotBaseLib.h"
uint16_t servopos = 20;

void servotrim(void)
{
   setLEDs(1);
   sleep(servopos);
   setLEDs(0);
   sleep(200-servopos);
}

void servoposi(uint8_t servosoll)
{
	uint8_t i;

	while(servopos != servosoll)
	{
		if(servopos<servosoll) servopos++; else servopos--;
      servotrim();
      // mSleep(50);
      // was das mSleep() hier soll weiß ich auch nicht mehr genau
      // richtiger wäre servotrim() mehrfach aufzurufen um dem
		// Servo genug Zeit zu geben die neue Position anzufahren:
      for(i=0; i<5; i++) servotrim();
	}
}

int main (void)
{
   initRobotBase();
   while (true)
   {
      //task_RP6System();
      servoposi(10);
      servoposi(15);
      servoposi(20);
   }
   return 0;
}
Gruß

mic