Not knowing the details of your board, it is a little tough to propose a
better solution, but here goes.
Since your using the parallel port, you should consider an interrupt
based driver, have the board provide the interrupt signal when the A/D
conversion is completed. Most A/D chips provide a sense line that
indicates when the converion is completed and the data can be read. that
way you don't have to "wait" for the board.
Connect the sense line to the interrupt pin on the parallel port.
Then create a tasklet that is called by the driver to move the data from
kernel space to user space.
This is a bit more complex than a simple polling scheme, but far more
elegant and reliable and totally independent of CPU speed or processor
performance. Odds are you won't even notice the short time the CPU is
servicing the interrupt.
Regards
John W
Chris Jenks wrote:
Dear Group,
I'm writing a C program on my Debian system to read from an
interface board through the parallel port. I need to wait at least 300
microseconds before reading from the next channel, to give the A/D
converter on the board time to stabilize, but I don't want to wait
much longer (e.g., 10 milliseconds) because it will make the program
too slow. The delay functions (usleep, nanosleep...) only provide
delays down to 10-30 milliseconds, despite their name, because they
apparently yield the CPU to other tasks with every call. The best
solution I've found it to read (or write) to a port (e.g., 0x80),
which takes one microsecond. By doing this 300 times, I get something
close to the wanted delay, plus a little because of time sharing, but
it is good enough. The only thing I don't like is that my process
takes about 97% of the CPU, even though it spends almost all its time
waiting. The CPU is a fanless 386, and it runs pretty hot at 97%
usage. Is there an elegant solution to this, or should I look for a
CPU fan? I would like to leave this a time-sharing system.
Thanks,
Chris
_______________________________________________
vox-tech mailing list
[email protected]
http://lists.lugod.org/mailman/listinfo/vox-tech
_______________________________________________
vox-tech mailing list
[email protected]
http://lists.lugod.org/mailman/listinfo/vox-tech