PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bascom-Servo-Attiny26 -> Nichts geht!



Brantiko
12.06.2007, 16:09
Moin,
Kann mir jemand erklären wieso dieses sehr einfach gehaltene Programm hier:


$regfile = "at26def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 1000000 '


Config Portb = Output
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10

Enable Interrupts



Do

Servo(2) = 250
Waitms 500
Servo(2) = 200
Waitms 500
Loop

End


Nicht funktioniert?
Habe zwei Servos an den Entsprechenden Pins angeschlossen, keiner von beiden springt zwischen den Position her wie es sein soll.
Statt dessen fährt es ganz langsam im kleinen Schritten bis ganz zur Seite. Sehr ärgerlich. Hat jemand eine Idee woran es liegen koennte?

Gruss

Alex

Dirk
12.06.2007, 16:21
Hallo Alex,
schau dir das Beispiel in der Bascom-Hilfe (unter Config Servos) an!
Dann wirds gehen!

Tips:
1. Es wird in deinem Prog nur Servo 2 angesteuert. Servo 1 wird sich dann auch nicht bewegen.
2. Die Werte 200 und 250 sind zu hoch.

Gruß Dirk

Brantiko
12.06.2007, 16:36
Hallo,
Das mit den zwei Servos habe ich nur gemacht weil es mit einem nicht geklappt hat (genauso wenig wie jetzt also auch).
Die werte sind "egal" auch bei 10,100,110,150 klappt es nicht.

Gruss

Alex

Jon
12.06.2007, 16:39
Versuche mal die Zeit Waitms 500 zu verlängern. Auf eine Sekunde oder so. Könnte sein, dass die Zeit zu kurz ist.
Reload 10 dürfte auch zu wenig sein. Nimm mal Reload = 20.

jon

Brantiko
12.06.2007, 17:10
Hilft leider alles nichts :-(
Auch ein anderer Pin geht nicht.

Gruss

Alex

Bluesmash
12.06.2007, 17:15
und du bist sicher dass, das servo richtig angeschlossen ist?


gruss bluesmash

linux_80
12.06.2007, 18:41
Hallo,

Reload 10 dürfte auch zu wenig sein. Nimm mal Reload = 20.

Was heisst zu wenig ?
Je kleiner umso besser ist es hier, und umso mehr Servos configuriert werden umso kleiner sollte der Wert sein.
Bei Einem Servo ist 10 grad noch richtig, ab dem 2. max. 8.

Jon
12.06.2007, 18:59
Meine Servos streiken, wenn ich Reload kleiner als 15 nehme. Und ich habe 4 Servos angeschlossen.

jon

linux_80
12.06.2007, 21:27
:-k
ich hab das mit dem Oszi gemessen, und versucht die 20ms so genau wie möglich zu treffen, meist war die Zeit aber länger, was in gewissem Rahmen noch geht, nur wenns zuviel Servos wurden, ist es schon mal vorgekommen, das die Servos zum zucken angefangen haben.
Ich hab das probiert mit sovielen Servos wie man in der einen Config-Zeile angeben kann.
Evtl. hängt das auch mit der CPU-Frequenz zusammen, und wie genau man damit die 10µs Reload hinbekommt.