Measurement Studio for .NET Languages

cancel
Showing results for 
Search instead for 
Did you mean: 

NI6374 - Configuring AI channel DMA and Direct reading

Hi Guys,

 

i'm trying to set-up my software that acquiring data using a NI-6374.

 

I would like use 1 of 4 channel as direct acquiring process and other 3 channel as DMA mode.

 

I will be read channel number 2 always while DMA channel start acquiring will be done through counter channel of same NI-board that will be triggered througha digital output.

 

So i've create Task of Digital Output, Task Counter, and Task Analog Input as DMA, but in this last task i would have 1 channel nomral and 3 dma.

 

It's this possible?

 

DAQmxCreateDOChan(NITaskHandleDO,'Dev1/port0/line0',nil,DAQmx_Val_ChanForAllLines);

DAQmxStartTask(NITaskHandleDO);

NIDAQmxErrorDO := DAQmxStartTask(NITaskHandleDO);

 

DAQmxCreateCOPulseChanTime(NITaskHandleCO,'Dev1/ctr0',nil,DAQmx_Val_TimeUnits2_Seconds,DAQmx_Val_Low,0.02,0.02,0.1);

DAQmxCfgDigEdgeStartTrig(NITaskHandleCO,'PFI10',DAQmx_Val_Rising);

DAQmxSetStartTrigRetriggerable(NITaskHandleCO,true);

DAQmxStartTask(NITaskHandleCO);

 

DAQmxCreateAIVoltageChan(NITaskHandleDMA, 'Dev1/ai0' , nil, DAQmx_Val_InputTermCfg_Diff, 0.0, 10.0, DAQmx_Val_VoltageUnits2_Volts, nil);
DAQmxCreateAIVoltageChan(NITaskHandleDMA, 'Dev1/ai1' , nil, DAQmx_Val_InputTermCfg_Diff, 0.0, 10.0, DAQmx_Val_VoltageUnits2_Volts, nil);
DAQmxCreateAIVoltageChan(NITaskHandleDMA, 'Dev1/ai2' , nil, DAQmx_Val_InputTermCfg_Diff, 0.0, 10.0, DAQmx_Val_VoltageUnits2_Volts, nil);
DAQmxCreateAIVoltageChan(NITaskHandleDMA, 'Dev1/ai3' , nil, DAQmx_Val_InputTermCfg_Diff, 0.0, 5.0, DAQmx_Val_VoltageUnits2_Volts, nil);

 

DAQmxCfgSampClkTiming(NITaskHandleDMA, '' , CST_SAMPLE_RATE, DAQmx_Val_Rising,DAQmx_Val_AcquisitionType_ContSamps,CST_SAMPLE_PER_CHAN);

DAQmxCfgDigEdgeStartTrig(NITaskHandleDMA,'PFI12',DAQmx_Val_Rising);

 

DAQmxStartTask(NITaskHandleDMA);

 

i would have:

DAQmxCreateAIVoltageChan(NITaskHandleDMA, 'Dev1/ai0' , nil, DAQmx_Val_InputTermCfg_Diff, 0.0, 10.0, DAQmx_Val_VoltageUnits2_Volts, nil);
DAQmxCreateAIVoltageChan(NITaskHandleDMA, 'Dev1/ai1' , nil, DAQmx_Val_InputTermCfg_Diff, 0.0, 10.0, DAQmx_Val_VoltageUnits2_Volts, nil);
DAQmxCreateAIVoltageChan(NITaskHandleAI, 'Dev1/ai2' , nil, DAQmx_Val_InputTermCfg_Diff, 0.0, 10.0, DAQmx_Val_VoltageUnits2_Volts, nil);
DAQmxCreateAIVoltageChan(NITaskHandleDMA, 'Dev1/ai3' , nil, DAQmx_Val_InputTermCfg_Diff, 0.0, 5.0, DAQmx_Val_VoltageUnits2_Volts, nil);

 

DAQmxStartTask(NITaskHandleDMA);

 

DAQmxStartTask(NITaskHandleAI);

0 Kudos
Message 1 of 1
(958 Views)