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:
Gruß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; }
mic







Zitieren

Lesezeichen