Hallo

DDRC |= (1<<PD3);
PORTC &= ~(1<<PD3);


Wenn du Pins von Port D verwenden willst, dann musst du auch das Datenrichtungsregister und den Port von D verwenden.

Bei mehreren Servos werden die Impulse nacheinander erzeugt und dann wird eine gemeinsame Restpause lang gewartet:

Code:
        for(c=0; c<50; c++)  //50 = 50 Impulse senden, das dauert ca. 1 Sekunde
         {
            PORTD |= (1<<PD3);      // Impulsstart servo I
            Sleep (servo1);   
            PORTD &= ~(1<<PD3);    // Impulsende
            PORTD |= (1<<PD6);      // Impulsstart servo 2
            Sleep (servo2);         
            PORTD &= ~(1<<PD6);    // Impulsende
            Sleep (255);       // Pause
            Sleep (255);       
            Sleep (255);       
         }
Beim asuro wird Sleep() mit dem 36kHz-Timer2 erzeugt, eine Millisekunde ist dann Sleep(36). Mehr Infos zum Servotiming beim asuro findest du z.B. hier:

https://www.roboternetz.de/phpBB2/ze...=500813#500813

Gruß

mic