PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mehr als 5 Servos ansteuern



minium :)
15.04.2007, 12:31
Hallo,

ich möchte mehr als 5 Servos ansteuern. Aber Bascom kann mit dem Programm von RN-Wiki nur 5 ansteuern (hier das Bsp. von RN-Wiki):


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

Config Portb = Output

Enable Interrupts

Servo(1) = 100
Servo(2) = 100
waitms 1000

Kennt jmd. eine Möglichkeit mehr als 5 Servos anzusteuern ? (die nicht so schwer ist)

Viele Grüße und danke im vorraus

molleonair
15.04.2007, 13:17
Hallo minium

laut Bascom Language reference können mit dem config servos
Befehl bis zu 14 Servos gesteuert werden.
Probiert hab ichs auch noch nicht

Gruß Daniel

Jon
15.04.2007, 13:56
Es gehen bis zu 15 Servos ohne Probleme.
Im Programm nur "Config Servo=15" schreiben und dann für alle 15 Servos den Pinn angeben.

jon

minium :)
15.04.2007, 18:36
Hi,

liegt es vielleicht an der Versionvon Bascom, ich benutze 1.11.8.3 ?

Viele Grüße

Jon
15.04.2007, 19:48
Verwende ich auch noch. Gab noch keine Probleme.
Poste mal dein Programm mit den 6 Servos.

jon

minium :)
15.04.2007, 20:00
Hallo,

hier das Programm:


$regfile = "m32def.dat"
$crystal = 16000000
$framesize = 32
$swstack = 32
$hwstack = 32

Config Servos = 6 , Servo1 = Portb.0 , Servo2 = Portb.4 , Servo3 = Portb.1 , Servo4 = Portb.2 , Servo5 = Portb.3 , Servo6 = Portb.4 , Reload = 5


Config Portb = Output

Dim Variable As Byte

Enable Interrupts

Do

Servo(1) = 97
Servo(2) = 97
Servo(3) = 100
Servo(4) = 97
Servo(5) = 100
Servo(6) = 100

Wait 5

Loop
End

P.S.: Das ist die gekürzte form ;)

Viele Grüße

Jon
15.04.2007, 20:17
1.Warum setzt du das ganze in eine Do-Loop schleife? Die Position kann nur einmal angefahren werden.
2. Ist Reload richtig? Bei mir führt "5" immer zum Ruckeln der Servos.
Mehr kann ich aber nicht entdecken. Ich werde das Programm mal morgen testen.

jon

P.S.:Was kommt da denn für eine Fehlermeldung? Sagt die Hilfe noch mehr zum Ansteuern von mehreren Servos?

minium :)
15.04.2007, 20:21
Hi,

da kommt gar keine Fehlermeldung, aber der Servo bewegt sich nicht, wenn ich 6 ansteuere, wenn ich aber 5 ansteuere bewegt er sich. Was meinst du mit Sagt deine Hilfe... ?

Viele Grüße

Jon
15.04.2007, 20:26
da kommt gar keine Fehlermeldung, aber der Servo bewegt sich nicht, wenn ich 6 ansteuere, wenn ich aber 5 ansteuere bewegt er sich.
Bullshitt. Ich werde es mal morgen probieren.


Was meinst du mit Sagt deine Hilfe... ?
Was sagt die Hilfe? In der BASCOM-Hilfe steht, dass 15 Servos maximal angesteuert werden können. Ich weiß aber gerade nicht, ob es Besonderheiten beim Ansteuern von mehr als 5 Servos gibt.

jon

minium :)
15.04.2007, 20:29
Wo findet man denn das über die Servos in der Bascom Hilfe ?

EDIT: ich habe mit der Suche nach Servo gesucht, da kommt jetzt nur Config servos und config aber das bringt mir nicht viel, da sonst nichts steht


Viele Grüße

Jon
15.04.2007, 20:32
auf "F1" Drücken und dann in einem der Register mal "Config Servo" eingeben.

jon

minium :)
15.04.2007, 20:35
Hi,

habe ich gemacht, da steht jetzt config servos und wenn ich auf anzeigen klicke kommt nichts.

Viele Grüße

Jon
15.04.2007, 20:36
Zweimal daraufklicken. Nicht einmal ;)

jon

EDIT: Wird auch Doppelklick genannt ;)

minium :)
15.04.2007, 20:40
JA, das habe ich auch gemacht ;) aber es kommt nichts :(

Viele Grüße

Jon
15.04.2007, 20:42
HÄ??? Bei mir kommt das was.
Ich werde es mal rauskopieren. Und hier Posten.

jon

EDIT: Das, was in der Hilfe steht:

Jon
16.04.2007, 15:13
Habs probiert. Geht aber nicht.
Ist es vielleicht ein Bug??
Kann das jemand mal mit der aktuellen Version testen?

jon

minium :)
16.04.2007, 17:11
Hi,

das prog. ist aber korekt. Wieso funktioniert es nicht ?
@jon, kannst du bitte dein Prog. mal schicken, wenn du damit 15 Servos ohne Probleme ansteuern kannst.

Viele Grüße

Jon
16.04.2007, 17:20
Ich habe es so wie du gemacht, nur habe ich insgesamt 14 Servos verwendet. Definitionen und das andere so, wie du es gemacht hast. War ne ältere BASCOM Version. Mittlerweile habe ich auch nur noch 6 Servos. Die anderen sind bei Experimenten hops gegangen (zu hoche Spannung, zu hohe Last etc.).
Deswegen vermute ich, dass es ein Bug ist.

jon

EDIT: Es können maximal 14 Servos angesteuert werden. (Lesen muss man können *g*) Versuche mal hinter "reload = 5" noch ", Timer = Timer1" zu schreiben. Vielleicht ist etwas am Timer0 defekt (kann ich mir aber ehrlich gesagt nicht vorstellen)

minium :)
16.04.2007, 18:03
Es gehen bis zu 15 Servos ohne Probleme.
Im Programm nur "Config Servo=15" schreiben und dann für alle 15 Servos den Pinn angeben.

jon


Es können maximal 14 Servos angesteuert werden. (Lesen muss man können *g*)


Habe das von dir gelesen und da stehen 15 ;) Könnte es vll. mal jmd. mit der neuen Bascom Version testen ?
Das es am Timer liegt glaube ich nicht, weil sonst müsste bei dir ja auch der timer defekt sein.

Viele Grüße

Jon
16.04.2007, 18:21
Probier es aber bitte trotzdem mal mit Timer1. Bei mir ist der nämlich belegt.

jon

minium :)
16.04.2007, 21:07
Hi,

ok, werde ich morgen machen, schreibe dann was passiert ist. Aber die anderen 5 funktionieren doch, dann muss der Counter doch ok sein, oder ?(aber ich probiers)

Viele Grüße

Jon
16.04.2007, 21:44
Stimmt eigentlich auch wieder. werde es morgen nochmal an einem anderen µC mit der neuen BASCOM Version testen.

jon

minium :)
16.04.2007, 21:46
Hi,

danke, hast du die Vollversion von Bascom ? oder gibt es doch eine Demo ?

Viele Grüße

Jon
16.04.2007, 21:51
Ich habe die Vollversion gekauft. War schön teuer. Ist aber auch billiger, wenn man es direkt beim Hersteller kauft. Dauert nur etwas länger.

jon

jeffrey
17.04.2007, 10:18
hallo,
mach doch mal den relaodwert höher und die schleife weg.
mfg jeffrey

chr-mt
17.04.2007, 10:34
Hi,
sicher daß es an der Software liegt ?
Hast du eine Controller mit JTAG Interface, daß vielleicht noch an ist? ;)

Gruß
Christopher

minium :)
17.04.2007, 14:19
Hi,

ich habe das RN-Board, mit einem Mega 32 Mikrocontroller ;) da ist kein JTAG Interface.
Oder doch ?

Viele Grüße

minium :)
17.04.2007, 15:06
Hi,

ich habe jetzt das mit dem Timer geändert. Da bewegt sich dann auch kein Servo wenn ich 6 ansteuern möchte.

Viele Grüße

Jon
17.04.2007, 15:56
JTAG hat jeder ATMega32.
Dies muss man aber nicht nutzen. JTAG muss, wenn du die Pins anderweitig verwenden willst, deaktiviert werden.

jon

for_ro
17.04.2007, 17:14
Hallo minium,
du weißt schon, dass du sowohl servo2 als auch servo6 für portb.4 konfiguriert hast?

Gruß

Rolf

Jon
17.04.2007, 17:52
*Sprung aus Fenster*
Warum bitteschön habe ich das nicht gesehen??
Ich habe die Servos nach und nach an Port B angeschlossen.
Also an B.0 B.1 B.2 B.3 B.4
Kein wunder, dass das nicht ging.
Also änder das mal. Dann sollte es eigentlich gehen.

jon

P.S.: Das mit dem "*Sprung aus Fenster*" habe ich jetzt nicht wirklich vor, aber es regt mich trotzdem ziemlich auf, dass mit das nicht aufgefallen ist *g*

minium :)
17.04.2007, 18:15
Hi,

nein, was für ein Fehler !! Vielen Dank.

Viele Grüße

for_ro
17.04.2007, 19:04
Auch ein blindes Huhn findet... ;-)