预览加载中,请您耐心等待几秒...
1/3
2/3
3/3

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

制作CVI实例 新建一个.prj,命名SIGGEN 在这个prj中新建SIGGEN.uir, 面板设计,在面板中新建Numeric控件,按需求设置ConstantName和DataType, 记得附上Label名 新建CommandButton控件,按需求设置ConstantName和CallBackFunction 程序设计 检查、完善头函数 定义变量 获取变量,语句如:GetCtrlVal(panelHandle,PANEL_AMP,&amp); 编译(在CVI中区分大小写) 实例完整代码如下 #include<ansi_c.h> #include<analysis.h> #include<cvirte.h> #include<userint.h> #include"SIGGEN.h" staticintpanelHandle; intmain(intargc,char*argv[]) { if(InitCVIRTE(0,argv,0)==0) return-1; /*outofmemory*/ if((panelHandle=LoadPanel(0,"SIGGEN.uir",PANEL))<0) return-1; DisplayPanel(panelHandle); RunUserInterface(); DiscardPanel(panelHandle); return0; } intCVICALLBACKGenerWave(intpanel,intcontrol,intevent, void*callbackData,inteventData1,inteventData2) { switch(event) { doubleamp; doublesampcyc; doublef; doublephase; doublecycnum; doublesamples; double*wave; caseEVENT_COMMIT: GetCtrlVal(panelHandle,PANEL_AMP,&amp); GetCtrlVal(panelHandle,PANEL_SAMPCYC,&sampcyc); f=1.0/sampcyc; GetCtrlVal(panelHandle,PANEL_CYCNUM,&cycnum); GetCtrlVal(panelHandle,PANEL_PHASE,&phase); samples=cycnum*sampcyc; wave=malloc(samples*sizeof(double)); SineWave(samples,amp,f,&phase,wave); DeleteGraphPlot(panelHandle,PANEL_GRAPH,-1,VAL_IMMEDIATE_DRAW); PlotY(panelHandle,PANEL_GRAPH,wave,samples,VAL_DOUBLE,VAL_THIN_LINE,VAL_EMPTY_SQUARE,VAL_SOLID,1,VAL_RED); free(wave); break; } return0; } intCVICALLBACKCLOSE(intpanel,intcontrol,intevent,void*callbackData,inteventData1,inteventData2) { switch(event) { caseEVENT_COMMIT: QuitUserInterface(0); break; } return0; } 执行界面如下 上述实例,参考书《LabWindows虚拟仪器设计史君成等著》62~64页