PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kommazahlen in Bascom zur Servo Ansteuerung?



x8r
12.12.2005, 16:30
Hallo,
ich habe folgendes Problem:
Um ein Servoansteuerung zu programmieren muss ichvon 1ms bis 2ms
warten.
Diese Zeitspanne definiert die Stellung des Servos.
Wie kann ich Kommazahlen in eine Variabele Formen bringen?
Hier mein prog das nicht funzt:

$regfile = "m8def.dat"
$crystal = 1000000
Config Portd = Output
declare sub serv(a as integer)
dim a as integer
dim b as integer
dim i as integer
dim y as integer

do
for y = 0 to 100
call serv(y)
next
wait 2
for y = 100 to 0 step -1
call serv(y)
next
wait 2
loop


sub serv(a as integer) "a = zahl 0-100
a = a / 100 "a = zahl 0 - 1
a = a + 1 "a = zahl 1 - 2
b = a / 2
b = 20 - b "b = zahl 19,5 - 20

for I = 1 to 100
portd.0 = 0
waitms B
portd.0 = 1
waitms A
next
end sub

Leider kann man nicht waitus benutzen weil hier die wartezeit nicht
variabel sein darf. Hat jemand eine Idee was ich machen kann?
Mit freundlichen Grüßen
Jan Weber

PS: Der Befehl "Servo" von Bascom ist für mich nichst ausreichend,
weil das Servo da ca. 10grad große schritte macht.

-=[Cassiopeia]=-
12.12.2005, 16:54
du kannst servos auch direkt über pwm ansteuern anstatt den vorgefertigen SERVO befehl von bascom zu nutzen.
falls du noch nen freien pwm ausgang zur verfügung hast... ansonsten eben über software pwm
schau doch mal: https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=14384&highlight=servo+pwm
oder
einfach in der suche nach servo und pwm