C Control PRO Unit Mega 128 198219 ユーザーズマニュアル

製品コード
198219
ページ / 429
345
C-Control Pro IDE
© 2013 Conrad Electronic
voll das byte Array global zu deklarieren.
  
Für die Servoansteuerung wird ein 16-Bit Timer benötigt. Wird der Timer abgeschaltet oder für andere
Timerfunktionen genutzt, so wird die Servoansteuerung nicht arbeiten.
Parameter 
servo_cnt 
Anzahl der möglichen Servos (maximal 20)
servo_interval  Periodenlänge (0=10ms, 1=20ms)
ramaddr 
Adresse des Speicherblocks
timer 
Für die Servosteuerung benutzter 16-Bit Timer
Mega32: 0 = Timer 1
Mega128 & Mega128 CAN: 0=Timer 1, 1=Timer 3
AVR32: alle Timer (0 - 5)
5.22.2 Servo_Set
Servo Funktionen
Syntax
void Servo_Set(byte portbit, word pos);
Sub Serial_Init(portbit As Byte, pos As Word)
Beschreibung
Setzt die Pulslänge zur Steuerung des Servoarms. Der Ausgangsport wird  über den  portbit Parameter an-
gegeben. (Für die Abbildung zwischen Portbits und den Pins des Controllers siehe 
).
  
Alle Pulslängen der gestellten Servos  dürfen  als  Summe  nicht die  Periodenlänge  (
 Pa-
rameter)  überschreiten,  da  sonst  ein  erratisches  Verhalten  auftritt.  Man  kann  daher  z.B.  8  Servos  auf
2500µs Pulslänge bei einer Periodenlänge von 20ms setzen. Zur Sicherheit sollte  man  allerdings  ein  we-
nig unter der Periodenlänge bleiben. 
Parameter 
portbit 
Bitnummer des Ports (siehe 
)
pos 
Pulslänge zur Steuerung des Servoarms in µsec (500 - 2500)
5.22.3 Servo Beispiel
byte servo_var[SERVO_BUF(1
0)
]; // Servo interne Variablen
// Ansteuerung von 3 Servos und beenden nach 10 Sek.
void main(void)
{
    // Max. 10 Servos, 20ms Intervall, Timer 3
    Servo_Init(
10
1
, servo_var, 
1
); 
    Servo_Set(
7
2000
);  // Servo Portbit 7   2000µs
    Servo_Set(
6
1800
);  // Servo Portbit 6   1800µs