資源簡介
基于labCVI的波形發生器源碼,此代碼運行在labCVI 2013版本中,通過前面板的選擇可以產生不同波形的數據,波形數據具有保存為文本文件和回放功能

代碼片段和文件信息
#include?
#include?
#include?
#include?
#include?“Wave.h“
static?int?SamplingRate=1;
static?int?panelHandle;
double?data[1024];??
int?main?(int?argc?char?*argv[])
{
if?(InitCVIRTE?(0?argv?0)?==?0)
return?-1; /*?out?of?memory?*/
if?((panelHandle?=?LoadPanel?(0?“Wave.uir“?PANEL))?0)
return?-1;
DisplayPanel?(panelHandle);
RunUserInterface?();
DiscardPanel?(panelHandle);
return?0;
}
int?CVICALLBACK?SamplingRateCB?(int?panel?int?control?int?event
void?*callbackData?int?eventData1?int?eventData2)
{
switch?(event)
{
case?EVENT_VAL_CHANGED:
GetCtrlVal?(panelHandle?PANEL_NUMERICDIAL?&SamplingRate);
break;
}
return?0;
}
int?CVICALLBACK?QuitCB?(int?panel?int?control?int?event
void?*callbackData?int?eventData1?int?eventData2)
{
switch?(event)
{
case?EVENT_COMMIT:
QuitUserInterface?(0);
break;
}
return?0;
}
int?CVICALLBACK?WaveFunCB?(int?panel?int?control?int?event
void?*callbackData?int?eventData1?int?eventData2)
{
double?phase;
????int?wave;
????int?period;
????double?value;
switch?(event)
{
case?EVENT_COMMIT:
?
//讀取波形參數
?????????????GetCtrlVal?(panelHandle?PANEL_NUMERICKNOB_V?&value);
?????????????GetCtrlVal?(panelHandle?PANEL_NUMERICKNOB_T?&period);
????????????//讀取波形
?????????????GetCtrlVal?(panelHandle?PANEL_RINGSLIDE?&wave);??
????????????//產生波形
?????????????phase=1.0;
?????????????switch?(wave)
???????? ?{
?????????????????case?0:???????????????? //產生正弦波?
?????????????????????SineWave?(1024?value?1.0/period?&phase?data);??
???????????? ?break;
?????????????????case?1:???????????? //產生方波?
?????????????????????SquareWave?(1024?value?1.0/period?&phase?50.0?data);?
???????????? ?break;
?????????????????case?2:???????????????? //產生三角波??
??????????????????????TriangleWave?(1024?value?1.0/period?&phase?data);?
???????????? ?break;
?????????????????case?3:???????????????? ?//產生鋸齒波
??????????????????????SawtoothWave?(1024?value?1.0/period?&phase?data);
???????? ?
???????????? ?break;
?????????????????case?4:???????????? ????//無
???????? ?
Clear1D?(data?1024);
???????????? ?break;
?????????????????default:
???????? ?
???????????? ?break;
???????? ?}
????
????????????//顯示波形
????????????DeleteGraphPlot?(panelHandle?PANEL_GRAPH?-1?VAL_IMMEDIATE_DRAW);
PlotWaveform?(panelHandle?PANEL_GRAPH?data?1024?VAL_DOUBLE?1.0?0.0?0.0?1.0/SamplingRate?VAL_THIN_LINE?VAL_EMPTY_SQUARE?VAL_SOLID?1?VAL_RED);
break;
}
return?0;
}
int?CVICALLBACK?WaveSaveCB?(int?panel?int?control?int?event
void?*callbackData?int?eventData1?int?eventData2)
{
FILE?*fp;
switch?(event)
{
case?EVENT_COMMIT:
//創建并打開文件
??fp?=?fopen?(“data.txt“?“wb“);???
//保存波形數據
??
??fwrite?(data?sizeof(double)?1024?fp);
//關閉文件
??
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????3938??2014-11-28?15:04??LWCVI波形發生器\作業一\Wave.c
?????文件???????2552??2014-11-28?15:04??LWCVI波形發生器\作業一\Wave.h
?????文件??????11041??2014-11-25?16:50??LWCVI波形發生器\作業一\Wave.prj
?????文件???????9352??2014-11-28?15:07??LWCVI波形發生器\作業一\Wave.uir
?????目錄??????????0??2014-11-28?15:08??LWCVI波形發生器\作業一
?????目錄??????????0??2015-05-15?14:35??LWCVI波形發生器
-----------?---------??----------?-----??----
????????????????26883????????????????????6
- 上一篇:aodv 協議運行過程流程圖
- 下一篇:TCA785(單相觸發)-datasheet
評論
共有 條評論