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
Lesezeichen