08-26-2019 08:07 PM
DAQmxErrChk(DAQmxCfgSampClkTiming(taskHandle, "", 10000, DAQmx_Val_Rising, DAQmx_Val_ContSamps, 1000));
个人理解:
范例中10000是采样频率10kHZ,1000代表每通道采集1000点
DAQmxErrChk(DAQmxRegisterEveryNSamplesEvent(taskHandle, DAQmx_Val_Acquired_Into_Buffer,1000 , 0, EveryNCallback, NULL));
同理:1000是缓存区数据到1000后执行回调函数,但是这个数必须能被缓存区整除,所以不能是256这样的数据,所以如果我想实现多通道数据连续采集,且每通道数据都是采样频率256HZ,也就是一秒采集256个点应该如何实现呢?
谢谢
Solved! Go to Solution.
09-10-2019 03:28 AM
你好!
看了上面的问题,想请教一下为什么有:“但是这个数必须能被缓存区整除,所以不能是256这样的数据”这个前提?是因为之前有配置成256后出现过错误吗,还是有什么资料提到了这一点(如果有能不能分享一下)?因为条件有限不太能复现这个问题,所以能不能分享一下把nSamples这个参数设置成256给你的项目中带来的具体影响?
09-10-2019 04:57 AM
你好,
刚才在LabVIEW中尝试复现了您的问题,并给出了问题解决的思路,具体见下面附件验证VI和Word总结。
09-12-2019 01:36 AM - edited 09-12-2019 01:37 AM
你好,
不知道上次回复之后,你的问题有没有得到解决?
关于上次回复中最后一条中提到的误差问题,我有做一些验证并得到了解决,具体情况在以下附件中进行了详细说明。
希望能够帮助到你!
09-12-2019 03:17 AM
在配置的时候会报错,原因是如果我没有设置缓存大小,程序会按照我的采样频率而自动分配缓存区的大小,这样是没法实现我的要求,一秒从缓存区读256个点,我需要在前面加上一句话,就是设置具体缓存区大小就可以了,因为我这边是用c++写的,labview可能不涉及这个问题
09-12-2019 03:22 AM
抱歉我今天才看到,确实是这样的呢,谢谢!