Hi,

danke für den Tipp! Werde ich gleich mal umsetzen.

Ich verwende deswegen einen Mega32, weil da später noch die ganzen Berechnungen für IK und so dazukommen sollen.

Man kann mehrere Servos auch ansteuern, du musst nur unten die Interruptroutine folgendermaßen umändern:

Code:
Servo:

   Select Case I
   Case 1 : Servo1 = 0
   Case 2 : Servo2 = 0
   Case 3 : Servo3 = 0
   Case 4 : Servo4 = 0
   Case 5 : Servo5 = 0
   Case 6 : Servo6 = 0
   End Select

   Incr I

   If I = 7 Then
   I = 0
   End If

   If Servo_ein(i) = 1 Then

      Select Case I
      Case 1 : Servo1 = 1
      Case 2 : Servo2 = 1
      Case 3 : Servo3 = 1
      Case 4 : Servo4 = 1
      Case 5 : Servo5 = 1
      Case 6 : Servo6 = 1
      End Select

   End If

   Timer1 = 65535 - Servo(i)

Return
Du musst halt dann oben im Deklarationsteil die Ports noch hinzufügen:

Code:
config PortX.X = output
Servo4 alias PortX.X
Servo5 alias PortX.X
Servo6 alias PortX.X
Man könnte wahrscheinlich auch noch mehr als die 6 Servos ansteuern, ab einer bestimmten Grenze wird halt dann der Impuls nicht mehr alle 20 ms wiederholt und die Servos werden kraftlos.

Gibt sicher noch eine elegantere Lösung.


Viele Grüße
ikarus_177