We are considering using QNX for a digital servo controller. We need servo
update rates of 600Hz to 1000Hz. We were hoping to set up a periodic timer
to trigger these process. We setup a simple experiment where we toggle a bit
on the parallel port and watch it with a o-scope.
We cannot get this process to run repeatably even at 500Hz (one cycle every
2ms). Every once in a while the process will wait 3ms before executing. We
have made a custom image of the OS and our process is really the only thing
running and has highest priority.
I’m hoping that I’m doing something wrong. I saw a demo of Embeddix about a
year ago and they were running a process at 300 KHz. They were doing
pulse-width modulation by simply toggling a bit on the parrallel port. That
pin of the parallel port was connected to ground through a coil of wire.
They had a short wave radio tuned to 150 KHz and the computer would play a
melody by generating a PWM waveform that was received by the receiver. You
could stop the process or disconnect the parallel port and the sound would
stop, so I don’t think this was any kind of hoax.
Does QNX give me any mechanism for executing such high-speed periodic
process, or am I forced to design a hardware clock to interrupt me at the
rate I desire.
Any advice is much appreciated.