Hallo

v2.8 kenne ich leider nicht, aber ich vermute, sie läuft auch mit 1/36000er Takt. Dann kannst du den Code mit den doppelten Sleep()s vergessen.

Wie hast du denn das Servo angeschlossen? Rot auf +, Braun auf - und Orange (oder was sonst noch übrig ist) auf BackLED?

Hier noch ein Programm das auf meinem Asuro gelaufen ist. Mit den Tastern 1,3,4 und 6 gibt man feste Positionen vor, mit 2 und 4 (jeweils die mittleren Tasten auf jeder Seite) "steppt" das Servo auf die eine oder andere Seite:

Code:
#include "asuro.h"

#define servo_stellzeit 30
unsigned char sw0,sw1, servo_pos;

void servo(unsigned char winkel){
unsigned int count=0;
do{
	count++;
	BackLED(ON,ON); Sleep(winkel);
	BackLED(OFF,OFF); Sleep(255); Sleep(255); Sleep(255);
}while (count<servo_stellzeit);
}

int main(void) {

Init();
StatusLED(OFF);
sw0=PollSwitch();
servo_pos=45;
servo(servo_pos);
do{
	sw1=sw0;
	sw0=PollSwitch();
	if ((sw0) && (sw0==sw1)){
		switch(sw0){
	   case 1: servo_pos=80; break;
	   case 2: if (servo_pos<80) servo_pos++; break;
	   case 4: servo_pos=45; break;
		case 8: servo_pos=45; break;
	   case 16: if (servo_pos>10) servo_pos--; break;
	   case 32: servo_pos=10; break;
	   }
	   StatusLED(YELLOW);
	} else { StatusLED(GREEN); }
	servo(servo_pos);
}while (1);
return 0;
}
Gruß

mic