Lab WindowsCVI连接硬件进行单通道AD连续采集并采样

今日头条

1151人已加入

描述

本篇文章主要让大家进一步熟悉Lab WindowsCVI的编程思路。

我们就利用信号发生器输出稳定的正弦波,并用开发板采集,再用Lab WindowsCVI的的控件进行波形显示。

实验步骤:

1. 打开CVI软件,新建项目。连接开发板。

2. 在控件面板放入一个Graph控件,一个Timer控件以及两个Square Command Button控件。并修改Label命名,如图1。

开发板

3. 运行Library→Generate→ All Code打开编程界面,选择“退出”按钮作为程序的关闭控件。在“开始”按钮的callback函数前定义一个整形变量w,赋值为0。并写入一个if循环。当w值等于0时,令w重新赋值为1,同时打开开发板,启动Timer控件函数,将“开始”按钮标签文本改写为暂停,并写入单通道AD连续采集设置并启用AD采样函数ADContinuConfigV12(int ad_mod,int chan,int gain,int Rate_Sample);函数具体用法可参见《USB数据采集卡使用说明书》。此处我们设置用端口AD1进行采集。另一方面else条件下则重新将w值置0,退出Timer函数,将“开始”按钮标签文本改写为继续,写入停止采集函数ADContinuStopV12(void);然后关闭开发板,代码如图2。

开发板

4. 在Timer控件的callback函数下定义一个整形变量y和一个单精度浮点型数组z[512]。写入查询采样数据函数GetAdBuffSizeV12(void);并赋值给y,并写入一个if循环对y的值进行判断。当y采样得到的数据数量大于512份时,利用回读函数ReadAdBuffV12(float* databuf,int num);读取512份数据并存入数组z中,并用Graph控件显示,如果数据量不足则只清空Graph控件为显示新一轮数据做准备。代码如图3。

开发板

5.利用信号发生器输出50Hz的正弦波信号,将信号输入端口AD1并接地,运行程序,效果如图4。

开发板

这样我们成功使用采样函数ADContinuConfigV12(int ad_mod,int chan,int gain,int Rate_Sample)采集到了信号发生器输出的正弦信号并用回读函数ReadAdBuffV12(float* databuf,int num)读取。

需要注意的是在用“开始”按钮运行了函数OpenUsbV12(void)打开开发板后,一定要有控件调用将其关闭的函数CloseUsbV12(void)。否则每次点击“开始”按钮都会使开发板重复开启。采样函数ADContinuConfigV12()同理,使用完一定要写入停止采集函数ADContinuStopV12(void)。

审核编辑:符乾江

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分