yes I used the above mentioned function to disable regeneration but how do I continuously output data say in a "while" loop also checking to see that the write buffer is not overwritten before outputting.
Here is the modified example code that I'm working on but somehow it is not giving me the desired result.
thanks,
satish
int main(void)
{
int32 error=0;
TaskHandle taskHandle=0;
char errBuff[2048]={'\0'};
bool32 done=0;
int i=0;
int32 written;
uInt32 writeBufferSpaceAvailable;
float64 data[250000*8];
for(;i<250000*8;i++)
data[i] = 9.95*sin((double)i*2.0*PI/100000.0);
/*********************************************/
/*/ DAQmx Configure Code
/*********************************************/
DAQmxErrChk (DAQmxCreateTask("",&taskHandle));
DAQmxErrChk (DAQmxCreateAOVoltageChan(taskHandle,"PXI1Slot7/ao0:7","",-10.0,10.0,DAQmx_Val_Volts,NULL));
DAQmxErrChk (DAQmxCfgSampClkTiming(taskHandle,"",250000,DAQmx_Val_Rising,DAQmx_Val_ContSamps,250000*2));
DAQmxErrChk (DAQmxCfgOutputBuffer (taskHandle, 250000*2));
DAQmxErrChk (DAQmxSetWriteRegenMode(taskHandle,DAQmx_Val_DoNotAllowRegen));
/*********************************************/
/*/ DAQmx Write Code
/*********************************************/
DAQmxErrChk (DAQmxWriteAnalogF64(taskHandle,250000,0,-1,DAQmx_Val_GroupByScanNumber,data,&written,NULL));
/*********************************************/
/*/ DAQmx Start Code
/*********************************************/
DAQmxErrChk (DAQmxStartTask(taskHandle));
printf("Generating voltage continuously. Press any key to interrupt\n");
while(!_kbhit())
{
DAQmxErrChk (DAQmxGetWriteSpaceAvail(taskHandle, &writeBufferSpaceAvailable));
printf("writeBufferSpaceAvailable : %d\n",writeBufferSpaceAvailable);
if(writeBufferSpaceAvailable > 250000)
{
DAQmxErrChk (DAQmxWriteAnalogF64(taskHandle,250000,0,-1,DAQmx_Val_GroupByScanNumber,data,&written,NULL));
printf("data written : %d\n",written);
}
Sleep(100);
}
_getch();
Error:
if( DAQmxFailed(error) )
DAQmxGetExtendedErrorInfo(errBuff,2048);
if( taskHandle!=0 ) {
/*********************************************/
/*/ DAQmx Stop Code
/*********************************************/
DAQmxStopTask(taskHandle);
DAQmxClearTask(taskHandle);
}
if( DAQmxFailed(error) )
printf("DAQmx Error: %s\n",errBuff);
printf("End of program, press Enter key to quit\n");
getchar();
return 0;
}