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
Lesezeichen