So vielleicht, ich hab's nicht getestet:
Code:
// RP6 steuert ein Servo an der SL1-LED mit Sleep()

#include "RP6RobotBaseLib.h"

#define RC_PROMO8

#ifdef RC_PROMO8

#define RC5_KEY_SERVO_RIGHT 46
#define RC5_KEY_SERVO_LEFT 60

#endif

#define servorechts 10
#define servolinks 20
uint8_t servopos=15;
uint8_t stellzeit;

void receiveRC5Data(RC5data_t rc5data)
{
writeString_P("Toggle Bit:");
writeChar(rc5data.toggle_bit + '0');
writeString_P(" | Device Address:");
writeInteger(rc5data.device, DEC);
writeString_P(" | Key Code:");
writeInteger(rc5data.key_code, DEC);
writeChar('\n');

if (rc5data.key_code == RC5_KEY_SERVO_RIGHT)
   if(servopos > servorechts) // wenn nicht in Position
	 while(--servopos >= servorechts) // Position schrittweise annähern
   	for(stellzeit=0; stellzeit<5; stellzeit++) // Signal mehrmals senden
			{
				setLEDs(1);
    			sleep(servopos);
    			setLEDs(0);
    			sleep(200-servopos);
			}

if (rc5data.key_code == RC5_KEY_SERVO_LEFT)
   if(servopos < servolinks)
	 while(++servopos <= servolinks)
   	for(stellzeit=0; stellzeit<5; stellzeit++)
			{
				setLEDs(1);
    			sleep(servopos);
    			setLEDs(0);
    			sleep(200-servopos);
			}
}

int main(void)
{
initRobotBase();
IRCOMM_setRC5DataReadyHandler(receiveRC5Data);
powerON();
setLEDs(0);

while(true)
{
task_RP6System();
}
return 0;
}
gruß