08-27-2009 09:05 AM
我用的是BNC-2110的接线卡和PCI-6115的数据采集卡。
我希望由AI0输入通道连续接收一个模拟信号,同时把接受到的信号立即从AO0输出通道发出去。
我用C语言。
不知道这个程序要怎么写。
09-01-2009 01:42 AM - edited 09-01-2009 01:43 AM
这里“同时”是允许延时多长时间?这将决定连续采样的一个片段是多长时间。此外,采样率大概是多少呢?模拟采集的程序您可以参考
C:\Documents and Settings\All Users\Documents\National Instruments\NI-DAQ\Examples\DAQmx ANSI C\Analog In\Measure Voltage\Cont Acq-Int Clk中的范例,
而模拟输出的程序可以参考
C:\Documents and Settings\All Users\Documents\National Instruments\NI-DAQ\Examples\DAQmx ANSI C\Analog Out\Generate Voltage\Cont Gen Volt Wfm-Int Clk。
不过,个人觉得,如果对延时要求苛刻的话,不如直接把这个模拟信号分为两路,一路进入AI0通道进行采集或者存储,另一路直接接到原本AO0的输出对象。事实上用多功能数据采集卡的AO实现任意波形的连续发送是不好做的。一般来说把数据写到内存中,然后重复来发送这段数据,这是很容易实现的。带要求不断刷新这个内存中的数据并把他们不断发送出去,这就要求定时非常准确,不致于写入速度过快,导致数据没有来得及发送就被覆盖,也不致于写入速度太慢,导致内存中没有数据可发。