[哈尔滨工业大学LabWindows_CVI]实验学习二:函数发生器 和 选做

++++++++++++++++++++++++++++++++++++

LabWindows_CVI实验学习二:函数发生器

++++++++++++++++++++++++++++++++++++

注意事项:

在实验二的过程中,程序中自己写了一个函数show_wave(),如果调用的话,需要在程序的最前边

进行声明,不然会出现提示 错误

 29, 13   Missing prototype. (Require function prototypes build option is enabled.)

函数声明的写法很简单为:

void show_wave(void);  //对自己写的函数进行声明

还有就是需要对POINTS进行定义和初始化赋值。

#include <analysis.h>
#include <cvirte.h>
#include <userint.h>
#include "exam2.h"static int panelHandle;void show_wave(void);  //对自己写的函数进行声明int main (int argc, char *argv[])
{if (InitCVIRTE (0, argv, 0) == 0)return -1;  /* out of memory */if ((panelHandle = LoadPanel (0, "exam2.uir", PANEL)) < 0)return -1;DisplayPanel (panelHandle);RunUserInterface ();DiscardPanel (panelHandle);return 0;
}int CVICALLBACK WaveFormChooseCB (int panel, int control, int event,void *callbackData, int eventData1, int eventData2)
{
//  void show_wave();  //switch (event){case EVENT_COMMIT:show_wave();break;}return 0;
}int CVICALLBACK QuitCallback (int panel, int control, int event,void *callbackData, int eventData1, int eventData2)
{switch (event){case EVENT_COMMIT:QuitUserInterface (0);break;}return 0;
}void show_wave(void)
{int waveForm;//波形选择变量int POINTS=500;double ample=5.0;//幅度double phase=0.0;      //相位double waveData[POINTS];//波形数据变量double sampleRate=10000.0; //采样频率double freq=100.0;//频率变量GetCtrlVal (panelHandle, PANEL_WAVEFORM, &waveForm);switch(waveForm){case 0:  //无波形DeleteGraphPlot(panelHandle,PANEL_GRAPH1,-1,VAL_IMMEDIATE_DRAW);/*清除所画曲线*/break;case 1: //正弦波SineWave (POINTS, ample, freq/sampleRate, &phase, waveData);break;case 2: //三角波TriangleWave (POINTS, ample, freq/sampleRate, &phase, waveData);break;case 3: //锯齿波SawtoothWave (POINTS, ample, freq/sampleRate, &phase, waveData);break;case 4: //方波SquareWave (POINTS, ample, freq/sampleRate, &phase, 50.0, waveData);break;}if(waveForm)/*先判断是否选择了波形*/{DeleteGraphPlot (panelHandle, PANEL_GRAPH1, -1, VAL_IMMEDIATE_DRAW);    PlotWaveform (panelHandle, PANEL_GRAPH1, waveData, POINTS, VAL_DOUBLE, 1.0, 0.0, 0.0, 1.0/sampleRate,VAL_THIN_LINE, VAL_EMPTY_SQUARE, VAL_SOLID, 1, VAL_RED);/*画出波形*/}
}

++++++++++++++++++++++++++++++++++++

LabWindows_CVI实验学习二:选做部分

++++++++++++++++++++++++++++++++++++

/**
*  CVI 实验二的选做部分没有对频谱进行显示主要学习:1、处理多个回调函数2、对多个控件值的处理3、实验一中选做:比较*_COMMIT和*_CHANGED的区别
*
*/
#include <analysis.h>
#include <cvirte.h>
#include <userint.h>
#include "exam2_xz.h"static int panelHandle;void show_wave(void);  //对自己写的函数进行声明int main (int argc, char *argv[])
{if (InitCVIRTE (0, argv, 0) == 0)return -1;  /* out of memory */if ((panelHandle = LoadPanel (0, "exam2_xz.uir", PANEL)) < 0)return -1;DisplayPanel (panelHandle);RunUserInterface ();DiscardPanel (panelHandle);return 0;
}int CVICALLBACK WaveFormChooseCB (int panel, int control, int event,void *callbackData, int eventData1, int eventData2)
{switch (event){case EVENT_COMMIT:show_wave(); break;}return 0;
}/*数值控件AMPLE对应的回调函数*/
//利用事件监测 EVENT_VAL_CHANGED,让AMPLE的值已发生改变,立马对“波形显示”区域显示的波形进行刷新
int CVICALLBACK ChangeAmpleCB (int panel, int control, int event,void *callbackData, int eventData1, int eventData2)
{switch (event){case EVENT_VAL_CHANGED:  //实验一中的选做:比较*_COMMIT和*_CHANGED的区别show_wave();break;}return 0;
}/*数值控件FREQ对应的回调函数*/
//利用事件监测 EVENT_VAL_CHANGED,让FERQ的值已发生改变,立马对“波形显示”区域显示的波形进行刷新
int CVICALLBACK ChangeFreqCB (int panel, int control, int event,   //void *callbackData, int eventData1, int eventData2)
{switch (event){case EVENT_VAL_CHANGED:show_wave(); break;}return 0;
}int CVICALLBACK QuitCallback (int panel, int control, int event,void *callbackData, int eventData1, int eventData2)
{switch (event){case EVENT_COMMIT:QuitUserInterface (0);break;}return 0;
}void show_wave(void)
{int waveForm;//波形选择变量int POINTS=500;double ample=5.0;//幅度double phase=0.0;      //相位double waveData[POINTS];//波形数据变量double sampleRate=10000.0; //采样频率double freq=100.0;//频率变量GetCtrlVal (panelHandle, PANEL_WAVEFORM, &waveForm); //获取设定的波形GetCtrlVal (panelHandle, PANEL_AMPLE, &le); //获取设定的幅度GetCtrlVal (panelHandle, PANEL_FREQ, &freq); //获取设定的幅度switch(waveForm){case 0:  //无波形DeleteGraphPlot(panelHandle,PANEL_GRAPH,-1,VAL_IMMEDIATE_DRAW);/*清除所画曲线*/break;case 1: //正弦波SineWave (POINTS, ample, freq/sampleRate, &phase, waveData);break;case 2: //三角波TriangleWave (POINTS, ample, freq/sampleRate, &phase, waveData);break;case 3: //锯齿波SawtoothWave (POINTS, ample, freq/sampleRate, &phase, waveData);break;case 4: //方波SquareWave (POINTS, ample, freq/sampleRate, &phase, 50.0, waveData);break;}if(waveForm)/*先判断是否选择了波形*/{DeleteGraphPlot (panelHandle, PANEL_GRAPH, -1, VAL_IMMEDIATE_DRAW);    PlotWaveform (panelHandle, PANEL_GRAPH, waveData, POINTS, VAL_DOUBLE, 1.0, 0.0, 0.0, 1.0/sampleRate,VAL_THIN_LINE, VAL_EMPTY_SQUARE, VAL_SOLID, 1, VAL_RED);/*画出波形*/}
}

[哈尔滨工业大学LabWindows_CVI]实验学习二:函数发生器 和 选做相关推荐

  1. 哈尔滨工业大学与山东大学相比考研计算机科学与技术哪个好考,计算机考研,我该选浙大还是哈工大?...

    计算机考研,我该选浙大还是哈工大? 我觉得一个学校的综合排名只是你选择的一个小的条件,哈工大的综合排名很差吗?哈工大只不过是差了几个专业而已,没有医学专业对于哈工大在综合排名上肯定是有影响的.但你要知 ...

  2. 哈尔滨工业大学计算机学院官网,哈尔滨工业大学计算机学院 唐好选 tanghx@hope.hit...

    哈尔滨工业大学计算机学院 唐好选 tanghx@hope.hit View 125 Download 0 Embed Size (px) 344 x 292429 x 357514 x 422599 ...

  3. 哈工大计算机类的什么专业好,哈尔滨工业大学,一共有6个王牌专业,选哪个专业比较好...

    大学之间选择专业非常重要,面临着哈尔滨工业大学的顶尖专业.机械工程.控制科学.计算机科学.仪表科学.飞机设计.通信工程等专业,到底需要什么选择?那么今天小编给大家分享的便是哈尔滨工业大学,一共有6个王 ...

  4. 哈工大威海计算机考研招生简章,2017年哈尔滨工业大学(威海)考研专业目录及考试科目...

    据哈尔滨工业大学(威海)研究生院消息,2017年哈尔滨工业大学(威海)考研专业目录及考试科目已经公布,详情如下: 301 哈尔滨工业大学(威海) 学科代码 学科 备注 0824 船舶与海洋工程 ①10 ...

  5. 【考研】 2021年哈尔滨工业大学计算机考研「初试」经验贴

    2021年哈尔滨工业大学计算机考研「初试」经验贴 0. 写在前面 1. 复习资料 1.0 资料下载 2. 个人复习经验 2.1 考研政治 2.1.1 基础阶段 2.1.2 强化阶段 2.1.3 冲刺阶 ...

  6. 山东二本计算机排名大学最新,山东二本大学排名最新

    山东二本大学排名最新 山东二本大学的排名是学生和家长非常重视以及关心的一件事情,下面是应届毕业生小编收集整理好的最新山东二本大学排名 ,欢迎阅读本文! 山东二本大学排名列表 山东二本大学排名 学校名称 ...

  7. 【20保研】哈尔滨工业大学2020年研究生系列宣讲会正式启动!

    点击文末的阅读原文或者公众号界面左下角的保研夏令营或者公众号回复"夏令营"是计算机/软件等专业的所有保研夏令营信息集合,会一直更新的. 为了理想,为了未来 我们背起行囊 毅然决然 ...

  8. sqlserver战德臣_数据库系统设计课程最新版 数据库系统上中下三部(哈尔滨工业大学 战德臣教授主讲)...

    数据库系统设计课程最新版 数据库系统上中下三部(哈尔滨工业大学 战德臣教授主讲) 1.JPG (58.27 KB, 下载次数: 1) 2018-3-13 12:02 上传 2.JPG (57.47 K ...

  9. 与哈尔滨工业大学两位信安专业同学的通信(2005年)

    今天整理文件发现了这两篇通信,当时征得两位同学的同意,曾经刊载在一本高教杂志上,近期记忆力不是很好,居然忘记了杂志的名字了.时过境迁,不知道是否还有价值.当然也都是一家之言,小四就说过,对部分观点保留 ...

最新文章

  1. [ZJOI2010]网络扩容
  2. C++ STL (四)set使用
  3. 设计模式-UML图简单介绍
  4. PHP语言教父Gutmans炮轰Java:已经输掉Web之战
  5. 机器学习算法加强——聚类实践
  6. SpringBoot引入本地jar包
  7. NameNode之文件系统目录树
  8. 戴尔服务器t330可以用无线网卡吗,DELL T330服务器安装windows2008R2系统
  9. charles https抓包证书安装
  10. linux打包4g文件,怎么从Linux服务器上下载超过4G的文件?
  11. 何为企业?何以“大而能用,大而有当”?|一点财经
  12. 《花雕学AI》07:AI脑洞大开-盘点最火爆人工智能ChatGPT的23种新颖用法
  13. 汇编语言中xor指令_XOR寄存器,寄存器(汇编程序)
  14. Internet Download Manager v6.41.3中文特别版IDM下载器免费下载
  15. ACPI相关(7)- ACPI对ata的管理
  16. 【讲座回顾】不会被AI取代的人
  17. git/svn reset/revert 回滚到服务器上的某一个版本
  18. 医药板块企稳“回春”
  19. mybatis配置mybatis.configuration.map-underscore-to-camel-case=true
  20. Android通过adb查看wifi密码

热门文章

  1. Java 实现添加office水印
  2. 1.7.4.1 Function Queries-函数查询
  3. 通过matlab对比CS_CoSaMP,CS_GBP,CS_IHT,CS_IRLS,CS_OMP,CS_SP六种压缩感知图像重构算法的PSNR性能
  4. 郑宇:多源数据融合与时空数据挖掘(转载)
  5. wine中使用中投证券
  6. Unity基于Nolo开发非VR桌面2D应用
  7. 实验吧[WEB]——what a fuck!这是什么鬼东西?
  8. Python三维图像的绘制以及相关图例添加(3D图像 - 图例)
  9. MySQL小册子笔记 5 InnoDB 记录存储结构
  10. noip2000-fjz-进制转换 2008.11.5