I am running NT4.0 CVI 7.0/6.0.
I have a PC104/ISA bus card that requires some handshaking when asking for data. (It gives me 24bit analogue data)
ie.
1. send a Read command to card
2. read Status Register and check if data ready to read ie. wait for DataReady flag
3. read first data byte
4. keep reading Status Register until DataReady flag set
5. read second data byte
6. keep reading Status Register until DataReady flag set
7. read third data byte.
I use the inp() outp() functions and have loaded the cvintdrv.sys and confirmed that it is running.
In the sequence above if I wait too long before reading a data byte (ie. longer than ~5mSec) the PC104 card returns a timeout error and the sequence must start again.
Basically I get many errors inbetween valid data. I am not sure if the inp()/outp() are really working or that it is a timing error. There are some single byte reads that I can do and they seem to be valid - therefore I am inclined to say the inp()/outp() are okay and it is a timing error.
I used the window set priority before and after my card calls as indicated, but that does not seem to help me.
//========================================================
SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS);
error = SD811_GetData (&data);
SetPriorityClass(GetCurrentProcess(), NORMAL_PRIORITY_CLASS);
//========================================================