01-03-2006 06:31 PM
01-04-2006
06:05 PM
- last edited on
07-15-2025
04:15 PM
by
Content Cleaner
Dear Darrin,
I strongly recommend upgrading your driver to DAQmx. There is an example in the Example Finder (Help menu>>Find Examples) called Cont Acq&Graph Voltage-Int Clk.vi (Browse Hardware Input and Output>>DAQmx>>Analog Measurements>>Voltage) that performs a continuous acquisition with hardware timed sampling.
If you get a DMA error add a property node right after DAQmx Create Channel. To add the property, node right click on the block diagram and select NI Measurements>>DAQmx - Data Acquisition>>DAQmx Channel Property Node. Click on the property and select Analog Input>>General Properties>>Advanced>>Data Transfer and Memory>> Data Transfer Mechanism. Have a great day!
Sincerely,
Marni S.
01-05-2006 02:41 PM
I think that what's happening is at 1 kS/s boundary, the driver is automatically switching from a FIFO request condition of FIFO not empty to FIFO half full. Since the 6036 has a 1024 sample FIFO, data is either published to the host buffer every sample or every 512 samples (in this case I'm calling a sample one point from one channel). I think there is a way to override this behavior, but I don't have the Traditional DAQ driver installed in order to verify for certain. Try looking at the Set DAQ Device Info function for an option to do this. The tradeoff you're making is CPU utilization for responsiveness. When setting the request condition to not empty, you're generating an interrupt to the system with each sample acquired. At rates around 1 kS/s or less, this is probably fine, but as your sample rate increases, you'll definitely start to see the hit on your CPU. At certain "sweet" spots, you may even lock up your computer since all your computer has time for is servicing the FIFO request interrupt.
If you can't find a way around this in Traditional DAQ, I know DAQmx will definitely allow you to customize this behavior. It also does a better job of preventing your computer from locking up if you end up generating more interrupts per second than your system can handle.