I am encountering an odd issue with NI DAQmx and a PCI 6254 card. The card's counter 0 is configured to perform a linear encoder measurement using 2 pulse counting. Channel A is routed to the 10 MHz timebase and Channel B is grounded. The Z channel is enabled and set to a PFI line that reads an external signal to function as a reset of the count register. The counter is read at the same timebase as the analog input clock. For example, AI timebase is 40 kHz and the number of samples to read is 20,000. That will return a U32 array of 20,000 counter values, twice a second.
So here is the interesting part. If the AI timebase is 40 kHz, the system shows about 20% CPU utilization, perfectly reasonable for what I am doing. At 41 kHz, the CPU utilization jumps to 50% and at 42 kHz the CPU is maxed out at 100% utilization. Why would increasing the clock speed 5% increase the CPU load 500%? Profiling the VI shows almost all of the processor time in the Read Counter VI but only 2.2 kb of memory usage. Is there some issue with sampling the counter registers at faster than 40 kHz?
Everything is run in Labview 8 and using NiDAQmx 8.0.0f0. The read mode of the counter hasn't been changed from "Sleep."
Any help would be appreciated. Thanks,
Patrick