I'm currently working on a project where my digital and analog outputs must be done simultaneously. I wanted to setup a basic test file in C but I keep getting an error message, namely code -200077.
DAQmx Error: Requested value is not a supported value for this property. The property value may be invalid because it conflicts with another property.
Property: DAQmx_SampTimingType
Requested Value: DAQmx_Val_SampClk
Possible Values: DAQmx_Val_OnDemand
The code I have thusfar:
#include <NIDAQmx.h> #include <stdio.h> #include <math.h> void errorCheck(int func) { if (!DAQmxFailed(func)) return; char errBuff[2048] = { '\0' }; DAQmxGetExtendedErrorInfo(errBuff, 2048); printf("DAQmx Error: %s\n", errBuff); } int main(void) { float64 dataAO[1000] = { 0 }; float64 dataDO[1000] = { 0 }; // Analog TaskHandle taskhandleAO = 0; errorCheck(DAQmxCreateTask("Analog", &taskhandleAO)); errorCheck(DAQmxCreateAOVoltageChan(taskhandleAO, "Dev1/ao0", "", -10, 10, DAQmx_Val_Volts, "")); //errorCheck(DAQmxSetWriteRegenMode(taskhandleAO, DAQmx_Val_DoNotAllowRegen)); errorCheck(DAQmxCfgSampClkTiming(taskhandleAO, "", 100.0, DAQmx_Val_Rising, DAQmx_Val_ContSamps, 1000)); // Digital TaskHandle taskhandleDO = 0; errorCheck(DAQmxCreateTask("Digital", &taskhandleDO)); errorCheck(DAQmxCreateDOChan(taskhandleDO, "Dev1/port0/line0", "", DAQmx_Val_ChanPerLine)); //errorCheck(DAQmxSetWriteRegenMode(taskhandleDO, DAQmx_Val_DoNotAllowRegen)); errorCheck(DAQmxCfgSampClkTiming(taskhandleDO, "ao/SampleClock", 100.0, DAQmx_Val_Rising, DAQmx_Val_ContSamps, 1000)); errorCheck(DAQmxWriteAnalogF64(taskhandleAO, 1000, 1, 10.0, DAQmx_Val_GroupByChannel, dataAO, NULL, NULL)); errorCheck(DAQmxWriteDigitalLines(taskhandleDO, 1000, 0, 10.0, DAQmx_Val_GroupByChannel, dataDO, NULL, NULL)); errorCheck(DAQmxStartTask(taskhandleDO)); errorCheck(DAQmxStartTask(taskhandleAO)); }
What am I doing wrong?