hallo,
Ik heb m.b.v. visual basic 6.0 een programma gemaakt om de LPT1 compleet aan te sturen en in te lezen, net zoals parmon,
Nu heb ik een programma gemaakt om stappenmotoren aan te sturen via de LPT1 en ook via de COM poort.
De volgende stap is om servo's aan te sturen en nog veel belangrijker, de encoders uitlezen.
Ik heb een programma, Mach2, dit is gratis te downloaden op Artsoft.com, dit programma kan tot 6 stappenmotoren gelijktijdig aansturen, met ongekende hoge snelheden,
de motoren fluiten gewoon.
Het probleem met visual basic, is de clocksnelheid,
met een realtime = true, en een delay (1) in een loop van x13 is de snelheid vrij aardig, maar triest vergeleken bij Mach2.
Wat is de oplossing?
Ik denk dat ik moet gaan programmeren in assembler,
dit doen ze ook bij Mach2. (heb ik nagevraagd by mail)
Het schijnt een super resultaat te geven, en dat heb ik wel nodig voor die encoderschijven.
Wie heeft er nog positieve kritiek?
groetjes mies
Fantomaz
Ik moet hier weer vaker komen... Wat kun je zo'n forum als deze gaan missen. :-)
Dat is een onmogelijk probleem. Wat ik doe is tellussen maken. De tijd schat ik door geregeld gettickcount uit te lezen. Als ik een waarde voor de lus heb, ga ik verbeteren zodat ik steeds minder vaak gettickcount hoef uit te lezen en de timing dus iteratief nauwkeuriger wordt. Uiteindelijk weet ik dus hoe lang ik moet tellen voor 1ms
Ik ben hier dagen mee bezig geweest, omdat ik er van overtuigd was dat er een mooiere manier moest zijn. En die zijn er wel, maar met het risico dat als je het op een andere PC draait dat het dan niet meer werkt.
Delay(1) werkt niet. Ook niet met timeBeginPeriod() erbij. Bij mij tenminste niet. Het blijft gewoon tenminste een delay van 10 tot 20 ms minimaal.
Fantomaz
Ik moet hier weer vaker komen... Wat kun je zo'n forum als deze gaan missen. :-)
Op 29 januari 2006 13:32:24 schreef robocob:
idd. hoe haal ik die ene weg
Pas je text even aan of haal hem weg.
De Mods zullen hem dan wel sluiten.
dit schijnt de oplossing te zijn :
It is not possibel in Windows to pulse faster than 500 times per second or so. Mach uses a proprietary mehod of controlling the kernal in
assembler to do so. You wont be able to do it in VB at all.
dat houdt volgens mij in dat ik verder moet met assermbler.
Willie Worteltje
Er zijn 10 soorten mensen. Mensen die binair begrijpen en mensen die het niet begrijpen... http://home.versatel.nl/edithenwilliam/william.htm
Op 29 januari 2006 14:00:57 schreef robocob:
dit schijnt de oplossing te zijn :
It is not possibel in Windows to pulse faster than 500 times per second or so. Mach uses a proprietary mehod of controlling the kernal in
assembler to do so. You wont be able to do it in VB at all.dat houdt volgens mij in dat ik verder moet met assermbler.
Misschien zijn er dll(zoals port.dll van B.Kainka ) die wel sneller kunnen. Deze heb ik wel eens gebruikt in een vb6 project met de compoort. En ik heb het idee dat deze dll wel sneller als 1 ms kan regelen.
Iemand anders hier ervaringen mee?
Arjan Swets
cnc filmpjes op Http://www.arjan-swets.com
Hoi,...
Ik programmeerde vroeger vrij veel in visualbasic...
ik heb toen wel ontdekt dat als ik deze Hi-timer, ipv een standaard timer gebruikt alles stukken beter werkte...
Ik weet niet of je hier iets aan heb...
