Ich habe 2 Servos in Gebrauch:
Nr. 1 ist für das schwenken einer Mini-Kamera zuständig und funktioniert perfekt.
Nr 2 ist der selbe Typ und soll die Lenkung für das Fahrzeug sein. Und hier harkts.
Der Lenk-Servo fährt nur hin und wieder in die programmierte Position.
Meistens rast er nur zur Soll-Position, schießt dann zurück über die Mittelstellung hinaus und "wiggelt" dann ein paar mal um die Mittelstellung herum bis er sie dann beibehält.
Oder er zuckt nur etwas um die Mittelstellung herum wenn man ihn nach rehchts oder links beordert.

Die Positionsbefehle gebe ich per RS232 an einen Mega8.
Das Programm ist so aufgebaut, das jeder vom PC gegebene Befehl vom Controller an den PC zurückgeschickt wird wenn der uC ihn verstanden hat.
Die Befehle werden in 99% der Fälle prompt bestätigt - ich bin also sicher das es nicht an der RS232-Kommunikation liegt.

Folgenden Code verwende ich:

Code:
$regfile = "m8def.dat"                                     
$framesize = 32                                            
$swstack = 32
$hwstack = 32
$crystal = 16000000
$baud = 19200

Enable Interrupts

Config Pinc.1 = Output                                      'für Servo-Lenkung
Config Pind.2 = Output                                      'für Kamera-Servo-Steuerung

'Für ANTRIEB (Buchse A)
Config Pind.4 = Output                                      'Antrieb Kanal 1
Config Pind.5 = Output                                      'Antrieb Kanal 2
Config Pinb.1 = Output                                      'Antrieb PWM

Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Tccr1b = Tccr1b Or &H02                                     'Prescaler = 8

Config Servos = 2 , Servo1 = Portd.2 , Servo2 = Portc.1 , Reload = 10

Dim SteerAngle as Integer                                   'Lenkwinel
Dim SteerPosL as Integer
Dim SteerPosM as Integer
Dim SteerPosR as Integer
Antrieb1 Alias Portd.4                                     'für Antrieb (PWM)
Antrieb2 Alias Portd.5
AntriebPWM Alias Pwm1a

SteerPosL = 97                                              'Servo-Lenkungs-Winkel-Vorgaben
SteerPosM = 110
SteerPosR = 123
Servo(2) = SteerPosM 

'=============================
'Hauptschleife
'=============================

Do
   Do
      InByte = inkey()
      If InByte <> 0 then
         InString = InString + chr(InByte)
      End if
   Loop until InByte = 0

   If InString <> "" Then
      Select Case InString

         Case "RT"                                          'REQUEST_TELEMETRIE
            call Compose_Telemetrie()
            print "ST"                                      'SET_TELEMETIRE
            print TelemetrieString

         Case "MOVE_STOP"
            print InString
            AntriebPWM = Aus                                'Antrieb AUS
            Servo(2) = SteerPosM            

         Case "MOVE_FWD"
            print InString
            Antrieb1 = 1                                    'Antrieb VOR
            Antrieb2 = 0
            Servo(2) = SteerPosM
            AntriebPWM = MotorSpeed                         'Antrieb aktivieren

         Case "MOVE_FWD_R"
            print InString
            Antrieb1 = 1                                    'Antrieb VOR
            Antrieb2 = 0
            Servo(2) = SteerPosR
            AntriebPWM = MotorSpeed                         'Antrieb aktivieren

         Case "MOVE_FWD_L"
            print InString
            Antrieb1 = 1                                    'Antrieb VOR
            Antrieb2 = 0
            Servo(2) = SteerPosL
            AntriebPWM = MotorSpeed                         'Antrieb aktivieren

         Case Else
            AntriebPWM = Aus
            print "uC hat ungueltigen Befehl"               

      End Select
   End if 

   InString = ""

   Waitms 100                                               'wieso geht RS232-Kommunikation nur damit?
Loop
Bei dem Servo hat auch ein "Reload"-Wert von 7 keine Besserung gebracht.
Die Versorgungsspannung kommt überigens von einem 5V Spannungsregler der auch den rest vom Board versorgt. Die empfohlenen Werte für die Puffer-Elkos ect. habe ich auch eingehalten.

Hat jemand eine Idee wo das Problem liegen könnte?