今日头条
本篇文章主要让大家进一步熟悉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)。
审核编辑:符乾江
全部0条评论
快来发表一下你的评论吧 !