Testing the precision_timer library, latency can be up to 1ms. This isn't ideal for 1us-accurate timing!
This apparently comes down to the Windows API routines used. I'm working on an improved version which will avoid the problem by accessing the PC timer hardware directly instead of using Windows API calls. Preliminary testing looks like the current "polled" timers will be accurate to a resolution of about 16us, and a new "sleep" timer function (a function which doesn't exit until the timeout has expired) will be accurate to about 2us.... read more
A summary of where things are at.
GET_IO: Reading hardware PnP information from Windows.
Completed on Windows (not needed on Unix). Stable.
PRECISION_TIMER: Microsecond-precision timer.
First version done for Windows, but still needs some work. Alpha.
PARPORT_IO: Parallel port interface.
In progress for Windows. Needs precision timer to be completed before more work can be done. Pre-alpha.
Planning stage only - no support yet.
The bug reported previously has been fixed. Some other minor improvements have also been made, nd documentation has been added. This seems stable enough to warrant the "v1.0" tag. There are still improvements that could be made (some optimisation is possible, and more documentation could be added), but this looks like being about done.
Next up, the ParPort_IO library...
Zoltan Nemeth has found that get_io behaves incorrectly on his machine under Win2K. The error is that the DLL reports an error reading device resources (although all other DLL functions work OK). This is a genuine error in the DLL, but the cause of this is still under investigation. Until the problem's sorted, use this DLL with caution.
That isn't to say that you shouldn't use it, of course. I tested it on Win98, Win2K and WinXP, so it should be reasonably OK - there's probably just one oddity in a particular version of Windows. If you also see the same problem as Zoltan, please let me know (via the bug tracker), so that I've got more information to debug the problem.... read more
The libraries that will be provided here were originally written as part of the GunFire project. However they are universal enough that it makes sense for them to form their own project. This gives a useful library of utilities for interfacing to PC hardware which other people can use in their code.
The libraries I have so far provide microsecond-precision timers and access the Windows registry to find the I/O ports used by hardware. A library to provide parallel port access for Win98/ME is in development but has not yet been completed.... read more