ni采集卡的数字口,除了系统提供的task方式改变口线高低状态外,可不可以有其他方式改变?任务方式如下:
#define LEVEL_1 0xffff
#define LEVEL_0 0xff00
void do_perline_fun(char chan[256], char line[256], int voltage)
{
TaskHandle taskHandle_perline=0;
int32 written;
// DAQmx Configure Code
DAQmxCreateTask("",&taskHandle_perline);
DAQmxCreateDOChan(taskHandle_perline, chan, line, DAQmx_Val_ChanPerLine );
// DAQmx Start Code
DAQmxStartTask(taskHandle_perline);
// DAQmx Write Code
DAQmxWriteDigitalU32(taskHandle_perline,1,1,10.0,DAQmx_Val_GroupByChannel,
&voltage,&written,NULL);
// DAQmx Stop Code
DAQmxStopTask(taskHandle_perline);
// DAQmxClearTask(taskHandle_perline);
}
main()
{
char i;
while(1)
{
for(i=0;i<100;i++)
{
do_perline_fun( "Dev2/port1/line4", "line4", LEVEL_1);
do_perline_fun( "Dev2/port1/line4", "line4", LEVEL_0);
}
}
这种方式太耗时间我做了下测试要十几ms左右,有没有直接对口线操作的不需要任务
谢谢
|