Archiv verlassen und diese Seite im Standarddesign anzeigen : Waitms-problem
minium :)
10.03.2007, 12:32
Hallo,
wollte ein Programm mit 4 Servos und dem Timer schreiben. Hier erst mal das prog.:
$regfile = "m8def.dat"
$crystal = 16000000
$baud = 9600
Config Servos = 4 , Servo1 = Portd.0 , Servo2 = Portb.0 , Servo3 = Portd.2 , Servo4 = Portd.3 , Reload = 10
Config Pind.0 = Output
Config Pinb.0 = Output
Config Pind.2 = Output
Config Pind.3 = Output
Enable Interrupts
Do
Servo(1) = 100
Servo(2) = 100
Servo(3) = 145
Servo(4) = 100
Waitms 200
Servo(1) = 145
Servo(2) = 100
Servo(3) = 145
Servo(4) = 100
Waitms 500
Servo(1) = 145
Servo(2) = 120
Servo(3) = 145
Servo(4) = 100
Waitms 20000
Loop
Das untere (Waitms 500 Servo(1) = 145,....) funkt nicht, warum nicht ?
Was ist der fehler ?
Viele Grüße und Danke
Das untere (Waitms 500 Servo(1) = 145,....) funkt nicht, warum nicht ?
Wenn es den 3. Stellschritt nicht macht, liegt es daran, dass im 2. Schritt auch 145 als Position für Servo1 angegeben ist. (Das gilt auch für andere Servos.)
Gib doch unterschiedliche Positionen vor, wenn du was sehen willst!
minium :)
10.03.2007, 13:04
Hi,
es soll nur der 2.Servo sich verändern, soll ich dann auch nur den 2.Servo hinschreiben ? Und die anderen weglassen ?
Viele Grüße und danke
es soll nur der 2.Servo sich verändern
???? :-s
Das 2. Servo ändert seine Position von 100 auf 100 (bewegt sich erstmal nicht) und dann auf 120, bewegt sich also nur 1x in deiner Schleife, obwohl du 3 Stellbefehle gibst. Also: Was funktioniert da nicht? Bewegt sich gar nichts?
Deine 1. Frage bezog sich aber auf Servo1:
Das untere (Waitms 500 Servo(1) = 145,....) funkt nicht
P.S.: Mit reload=10 solltest du keine höheren Werte als 100 nehmen, weil das Servo evtl. schon am Anschlag ist.
Gruß Dirk
minium :)
10.03.2007, 14:06
Hi,
das ober funktioniert alles, nur wenn das 2. Servo sich auf 120 drehen soll funktioniert das nicht also er bleibt auf 100.
Bei der ersten frage schrieb ich",..." das dieser Abschnitt nicht funktioniert. Was muss ich machen das der 2.Servo sich nach 120 dreht ?
Viele Grüße
Probier mal niedrigere Werte: Z.B. 50 und 80.
minium :)
10.03.2007, 17:01
Hi,
das funktioniert alles nicht. Ich habe jetz mal eine LED angeschlossen und es probiert mit waitms aber es funktioniert auch nicht mit der LED. Was ist falsch, oder liegt es nicht am programm ? Ich habe die Schaltung vom Snugboard, und da ist ein Quarz mit 16Mhz. also müsste es doch eigentlich funktionieren, oder ?
Viele Grüße und Danke
Die Wartezeit dürfte zu lang sein. Probiere es mal bei allen waitms mit 200.
jon
minium :)
10.03.2007, 17:11
Hi,
habe es bei der LED mit 100 gemacht und es hat trotzdem nicht funktioniert :(
Woran liegt es ?
Viele grüße und Danke
Probiere es mal so:
$regfile = "m8def.dat"
$crystal = 16000000
$baud = 9600
Config Servos = 4 , Servo1 = Portd.0 , Servo2 = Portb.0 , Servo3 = Portd.2 , Servo4 = Portd.3 , Reload = 10
Config Pind.0 = Output
Config Pinb.0 = Output
Config Pind.2 = Output
Config Pind.3 = Output
Enable Interrupts
Servo(3) = 145
Servo(4) = 100
waitms 500
Do
Servo(1) = 100
Servo(2) = 100
Waitms 500
Servo(1) = 145
Waitms 500
Servo(2) = 120
Waitms 500
Loop
jon
minium :)
10.03.2007, 17:25
Hi,
danke, aber die Servos machen alles auf einmal.
Viele grüße und Danke
P.S.: Kommst du zum Robotest am 31.März ?
danke, aber die Servos machen alles auf einmal.
Dann versuche mal in 250ms schritten die Wartezeit zu erhöhen.
P.S.: Kommst du zum Robotest am 31.März ?
Wo ist das?
jon
minium :)
10.03.2007, 18:06
Hi,
probiere es gleich aus,
der robotest ist in frankfurt (www.robotest.de)
Viele Grüße und Danke
P.S: Nehme wahrscheinlich auch teil
minium :)
10.03.2007, 18:12
Hi,
leider funktioniert es immer noch nicht.
viele grüße
Dann fällt mir nichts mehr ein.
Vielleicht findet noch jemand anderes einen Fehler?
der robotest ist in frankfurt (www.robotest.de)
P.S: Nehme wahrscheinlich auch teil
Ich werde sehr wahrscheinlich kommen!!
jon
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.