I am acquiring and processing analog data in a tight loop with the PCI-MIO-16E-1 using the DAQmx 7.5 C library function DAQmxReadRaw. Using hardware flags to measure execution times with a scope I see that on this (very new) PC a call DAQmxReadRaw takes ~120 us. whether I get 100 samples back or 8000 samples (occasionally much longer, depending on what Win XP is doing, I assume, but I have a way to deal with that). This is a major bottleneck for me - is there a faster routine to get the data, or some other technique that could reduce the transfer time in a real-time loop like this? In particular, I'd like to have the ability to reduce the number of samples and get more speed out of the loop - it currently doesn't seem to make any difference in the range that is useful to me.
Thanks!