Servo_Init

Servo Funktionen        Beispiel


Syntax

 

void Servo_Init(byte servo_cntbyte servo_intervalbyte ramaddr[],

                byte timer);

 

Sub Servo_Init(servo_cnt As Byteservo_interval As Byte,

               ByRef ramaddr As Bytetimer As Byte)

 

 

Beschreibung

 

Initialisiert die Servoroutinen. Der Parameter servo_cnt gibt an wieviele Servos gleichzeitig betrieben werden. Die Periodenlänge (10 oder 20ms) wird mit servo_interval gesetzt, der Parameter timer bestimmt, welcher 16-Bit Timer eingesetzt wird. Timer 3 steht allerdings nur bei dem Mega128 zur Verfügung. Der Anwender muss den Servoroutinen Speicher zur Verfügung stellen. Für die Größe des Puffers gibt es ein #define SERVO_BUF. Möchte man ein byte Array definieren um X Servos zu betreiben, schreibt man "byte buf[SERVO_BUF(X)];"

 

 Das vom Benutzer zur Verfügung gestellte RAM muss während der Servosteuerung reserviert bleiben. Da lokale Variablen nach Verlassen der Funktion freigegeben werden, ist es meistens sinnvoll 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)