C Control PRO Unit Mega 128 198219 ユーザーズマニュアル
製品コード
198219
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
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)
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
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 (
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.
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
)
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