11-26-2020 08:07 AM
Hello,
i m trying to configure a signal output through Ao port. Im using USB-6001 device with C++ software.
I want to use Ao port 0 for this application, and P1 line3 as digital signal, and PFI0 as trigger for outputting data from Ao port. P1 line3 is externally connected to PFI0 input with cable.
The problemis that when i set P1 line3 high, i see with scope that it goes high, but Ao0 does not put data out. External trigger on PFI0 does not work correctly.
Here is my code:
// task DO
DAQmxCreateTask("TASKDO",&taskDOH); // create task
DAQmxCreateDOChan(taskDOH,"Dev1/port1/line3","",DAQmx_Val_ChanForAllLines); // create DO on port 1 line 3
DAQmxStartTask(taskDOH); // start task
DIO_p2_l3[0] = 0; // set digital data to 0
DAQmxWriteDigitalLines(taskDOH,1,false, 10.0,NON_INTERLEVAED,DIO_p2_l3,nullptr,nullptr); // write data on P1 line 3
// task 2
DAQmxCreateTask("Task2",&task2H); // create task for Ao
DAQmxCreateAOVoltageChan(task2H,"Dev1/ao0","",-10.0,10.0,DAQmx_Val_Volts,nullptr); // create analo output channel
DAQmxCfgSampClkTiming(task2H,"OnboardClock",1000.0,DAQmx_Val_Rising,DAQmx_Val_FiniteSamps,1000); // internal clock
DAQmxCfgDigEdgeStartTrig(task2H, "/Dev1/PFI0", DAQmx_Val_Rising); // set PFI0 as trigger for Ao
DAQmxRegisterDoneEvent(task2H,0,FineTask,this); // register callback for task finished
DAQmxWriteAnalogF64(task2H,1000,false,10.0,DAQmx_Val_GroupByChannel,DataWrite,nullptr,nullptr); // write data to Ao
DAQmxStartTask(task2H); // START TASK Ao
// send trigger
DIO_p2_l3[0] = 1; // set data to 1
DAQmxWriteDigitalLines(taskDOH,1,false, 10.0,DAQmx_Val_GroupByChannel,DIO_p2_l3,nullptr,nullptr); // write p1 line 3
what i am doing wrong?? please give some hint.
Kind Regards
11-27-2020 04:45 AM
Ok, it was a voltage problem, pulling up signal into PFI0 at 5V solve the problem.