Hi,
also ich hatte vor ein paar Tagen auch das erste mal... mit Servos.
Dieser Code:
Code:
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10
Config Portb = Output
Enable Interrupts
Servo(1) = 100
Servo(2) = 100
waitms 1000
funktioniert schon. Die Sache ist nur, dass man vorher nicht weiß wo die Endwerte für den Servo liegen. Ich hab mit 1 MHz am M32 angefangen, da waren die anschläge 9 und 49 (ungefähr). Bei 16MHz waren sie höher 30 und 90 (ungefähr). Wenn du jetzt außerhalb der Grenzen fährst dann entsteht dieses ruckeln. Also einfach Werte zwischen 0 und 150 ausprobieren. Am einfachsten so:
Code:
Config Servos = 1 , Servo1 = Portb.0 , Reload = 10
Config Portb = Output
Dim i as byte
Enable Interrupts
do
for i = 0 to 150 step 10
Servo(1) = i
waitms 1000
toggle portb.1
next
loop
Der Code sendet jetzt im Sekundentakt werte von 0 bis 150 an den Servo. Außerdem kannst du an Portb.1 eine Led hängen (mit Widerstand) und am ein und ausschalten mitzählen wo er gerade ist.
mfg milkbubi
Lesezeichen