how to reduce timer interval to 1 micro second
HI, everybody....
i m currently using printer parellel port to control stepper motor, in order to achieve high rotational speed, i need to send out pulses in microsecond interval....However, the minimum interval that VB timer can achieve is 1 milisecond only.......
can anybody here help me to solve this problem????
THX A MILLION!!
Re: how to reduce timer interval to 1 micro second
I don't know if that's possible. Even with the Sleep function you are limited to a 1 millisecond.
... Welcome to the forums :wave:
Re: how to reduce timer interval to 1 micro second
Re: how to reduce timer interval to 1 micro second
Martin, that's accurate to about 1ms - about 1,000 times what cheongcy needs.
cheongcy, driving a fast stepper in software, even in assembly, is a bit iffy, and the printer port, unless you're driving a stepper driver with it, isn't the hardware you want connected to a stepper motor (not enough current source, too susceptible to being blown by switching transients).
A hardware oscillator driving a stepper driver is more accurate, even if you use a 4 MHz oscillator (a cheap resonator) and /4 as the fast frequency, and pretty simple to implement. Just switch to a couple of cascaded /1,000 stages (or whatever you need) for the slow stepping. Your software is then as simple as turning one bit on or off.
Re: how to reduce timer interval to 1 micro second
well, i m actually using a driver to drive my stepper motor......
the driver only requires 2 signals that is clock and direction from the parallel port.....
i had tried to send out pulses wth 1ms interval, but the motor rotated in a very low speed....therefore i need a smaller time interval...........
Re: how to reduce timer interval to 1 micro second
What hapens when you send out impulses withought any pausing in between impulses ?
something like this:
VB Code:
do
do_impulse
loop until time_to_end
Re: how to reduce timer interval to 1 micro second
I'm going to guess that VB isn't going to execute that loop in less than a few tens of microseconds at best.
@cheongcy, just feed the clock input with a (hardware-derived) signal that's fast enough to move the stepper at the speed you want. Then stick a divide-by between the clock source and clock input that you can set to /x and /1 by changing one line from +5 to 0.
Or, another way, change the logic of the stepper controller (most of them are configurable) to produce faster steps with the same clock.
Re: how to reduce timer interval to 1 micro second
Quote:
Originally Posted by Al42
I'm going to guess that VB isn't going to execute that loop in less than a few tens of microseconds at best.
....
Yea... that's why I asked that question...
I think hardware control is the only way, microseconds is way to fast for VB
Re: how to reduce timer interval to 1 micro second
Actually I think microseconds is too fast for a stepper motor. With even 16 poles, that's about 62,000 RPS (almost 4 million RPM) , if I'm doing it right. Something tells me that the stepper controller is set to do a very large divide of the clock input.