Liebe Forumsgemeinde,
ich steuere 4 servos mit Bascom auf einem ATMega 128 mit folgendem Code:
1 | Config Servos = 4 , Servo1 = Portc.0 , Servo2 = Portc.2 , Servo3 = Portc.4 , Servo4 = Portc.6 , Reload = 10
|
2 |
|
3 | .
|
4 | .
|
5 | .
|
6 |
|
7 | Servo(1) = 109
|
8 | 'Waitms 100
|
9 | Servo(2) = 66
|
10 | Servo(3) = 109
|
11 | Servo(4) = 66
|
12 |
|
13 | Waitms 500
|
14 |
|
15 | Servo(1) = 87 ' Servo 1 Start
|
16 | Servo(2) = 87 ' Servo 2 Start
|
17 | Servo(3) = 87 ' Servo 3 Start
|
18 | Servo(4) = 87 ' Servo 4 Start
|
19 |
|
20 | Waitms 500
|
21 |
|
22 | .
|
23 | .
|
24 | .
|
Das klappt soweit auch ganz gut, nur habe ich bemerkt, dass ein Servo
von den vieren immer verzögert reagiert. D.h. 3 Servos stellen
gleichzeitig, dann fängt erst der letzte an zu stellen. Deswegen auch
das auskommentierte ' Waitms 100. Hat jemand schon mal ähnliches erlebt?
Wie kann ich dieses Problem beheben?
PS: Habe dasselbe Programm auch auf einem ATMega48/88 ausprobiert mit 10
MHZ. Da trat genau dasselbe Problem auf. Auch habe ich schon mit
verschiedenen Reload-Zeiten 3/5/9/11/20/30 experimentiert (da steuerten
die Servos gar nicht, einzeln, oder hintereinander)
MfG
Dieter