On a totally unrelated subject to my sio.c message, I have a second problem.
I've built a computer-controlled drill, that is controlled via the parallel
port. This drill uses stepper motors, at 1/2 step. My driver software
implements a maximum-acceleration control algorithm that ensures that at any
point in time, any axis will not experience more than X m/s/s of
acceleration. This keeps the drill from self-destructing. :) Unfortunately,
it means I need access to a very precise timing source to issue the step
instructions to the motor control board.
Right now, I use for() as a timing loop. I calibrate it on program start
and can then get very precise timing. There are, of course, the intermittent
interruptions of the multitasker. So this solution is not ideal by any
means. In fact, the for() loop approach is really meant for the DOS port of
this software. I'm wondering if there is any way I can access a more precise
interrupt-driven (or blocking) timing source. I know I can do a select()
with supposedly microsecond accuracy, but I doubt that it is in fact that
accurate in practice (doesn't the kernel only use a 100Hz clock or
something?). Is there any way to get at the system timers on the
motherboard? Those can provide precise timing, no?
--Bart
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message