文档介绍:LabWindows/CVI库函数的使用
实验目的
进一步熟悉CVI的集成开发环境
进一步学****仪器面板中控键的使用
学****CVI库函数使用方法
学****用CVI库函数进行频谱分析的步骤
实验内容
编写一个波形显示程序,要求根据输入的幅值和周期数显示正弦波;根据输入的幅值和占空比显示方波。
制作一个简单仪器面板:要求有两个图形控件,用来显示图形;四个数字控件,分别用来输入正弦波幅值、周期以及方波的幅值、占空比;五个命令控件,分别用来启动程序产生正弦波、产生方波,清楚屏幕上显示的图像和退出程序。
利用CVI的代码生成工具生成你制作的一起面板的程序框架。
在用户程序中添加相应程序,运行后观察程序执行的结果。
程序源代码
#include <>
#include <>
#include <>
#include ""
static int panelHandle;
double a,b,c,d;
int main (int argc, char *argv[])
{
if (InitCVIRTE (0, argv, 0) == 0)
return -1; /* out of memory */
if ((panelHandle = LoadPanel (0, "guweiming", PANEL)) < 0)
return -1;
DisplayPanel (panelHandle);
RunUserInterface ();
DiscardPanel (panelHandle);
return 0;
}
int CVICALLBACK
QINGPINGCallback (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
case MIT:
DeleteGraphPlot (panelHandle, PANEL_GRAPH_2, -1, VAL_IMMEDIATE_DRAW);
break;
}
return 0;
}
int CVICALLBACK FANGBOCallback (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{ double wave[512] ;
double phase=120,*p;
p=&phase;
switch (event)
{
case MIT:
SquareWave (512, c, -3, p, , wave);
PlotWaveform (panelHandle, PANEL_GRAPH, wave, 512, VAL_DOUBLE, , , , d, VAL_THIN_LINE, VAL_EMPTY_SQUARE, VAL_SOLID, 1, VAL_RED);