數(shù)發(fā)生器程序圖形代碼
發(fā)布時(shí)間:2014/6/27 20:23:30 訪問(wèn)次數(shù):686
圖7-38是一個(gè)函數(shù)發(fā)生器的程序框圖。它也同樣可以在運(yùn)行中按前面板上對(duì)信號(hào)類型、幅值、偏置、MB16W-1006P頻率及相位等做的修改控制輸出波形,但是這里提供了另外一種改變輸出信號(hào)頻率的方法。
前面的程序都是采用固定的模擬輸出刷新率,通過(guò)改變輸出波形數(shù)據(jù)中一個(gè)周期的數(shù)據(jù)點(diǎn)數(shù)來(lái)改變輸出信號(hào)的頻率。采用這種方法,當(dāng)緩沖區(qū)大小不是信號(hào)一個(gè)周期點(diǎn)數(shù)的整倍數(shù)時(shí),會(huì)造成信號(hào)的不連續(xù)。
而Function Generator程序采用了固定信號(hào)每周期數(shù)據(jù)點(diǎn)數(shù)waveform length,使它正好等于緩沖區(qū)大小,通過(guò)調(diào)用高級(jí)模輸出VI-AO Clock Config改變模擬輸出刷新率update rate來(lái)實(shí)現(xiàn)不同頻率信號(hào)輸出的方法。輸出信號(hào)的模擬頻率等于update rate除以
waveform length。實(shí)際輸出刷新率ticks per channel used可能與配置的update rate有微小差別。
圖7-38 函數(shù)發(fā)生器程序圖形代碼
程序中首先用AO Config VI配置輸出通道和緩沖區(qū)大小。在第一次循環(huán)時(shí)計(jì)算出初始波形數(shù)據(jù)并由AO Write VI裝入緩沖區(qū),然后AO Start VI開始連續(xù)的波形輸出,如圖7-38(b)所示,在接下來(lái)的循環(huán)中,如果前面板上波形參數(shù)控件配置值有變化,就重新計(jì)算波形并裝入緩沖區(qū),如圖7-38 (c)所示。為了波形平緩過(guò)渡,AO Write VI每次寫緩沖區(qū)大小的二分之一。如果前面板配置的輸出刷新率發(fā)生變化,就調(diào)用Analog Output Clock ConfigVI重新配置輸出時(shí)鐘,如圖7-38 (d)所示。程序每250ms檢查一次前面板控件,以便為其他并行運(yùn)行的程序留出CPU時(shí)間。程序結(jié)束時(shí)的處理與前一例相同。
使用這個(gè)程序在以下情況下會(huì)發(fā)生號(hào)碼為10843的underFlowErr錯(cuò)誤,即寫緩沖太慢:
·計(jì)算機(jī)硬件配置太低。
·同時(shí)運(yùn)行其他程序。
·刷新率配置太高。
·緩沖區(qū)配置太小。
如果數(shù)據(jù)采集卡的模擬輸出有FIFO緩沖,那么將AI Config VI的輸入?yún)?shù)allocatemode配置為use FIFO memory可以解決這個(gè)問(wèn)題。但是很多低價(jià)位數(shù)據(jù)采集卡都沒(méi)有模擬輸出FIFO緩沖,這時(shí)只有降低程序性能來(lái)保證它能夠運(yùn)行。
圖7-38是一個(gè)函數(shù)發(fā)生器的程序框圖。它也同樣可以在運(yùn)行中按前面板上對(duì)信號(hào)類型、幅值、偏置、MB16W-1006P頻率及相位等做的修改控制輸出波形,但是這里提供了另外一種改變輸出信號(hào)頻率的方法。
前面的程序都是采用固定的模擬輸出刷新率,通過(guò)改變輸出波形數(shù)據(jù)中一個(gè)周期的數(shù)據(jù)點(diǎn)數(shù)來(lái)改變輸出信號(hào)的頻率。采用這種方法,當(dāng)緩沖區(qū)大小不是信號(hào)一個(gè)周期點(diǎn)數(shù)的整倍數(shù)時(shí),會(huì)造成信號(hào)的不連續(xù)。
而Function Generator程序采用了固定信號(hào)每周期數(shù)據(jù)點(diǎn)數(shù)waveform length,使它正好等于緩沖區(qū)大小,通過(guò)調(diào)用高級(jí)模輸出VI-AO Clock Config改變模擬輸出刷新率update rate來(lái)實(shí)現(xiàn)不同頻率信號(hào)輸出的方法。輸出信號(hào)的模擬頻率等于update rate除以
waveform length。實(shí)際輸出刷新率ticks per channel used可能與配置的update rate有微小差別。
圖7-38 函數(shù)發(fā)生器程序圖形代碼
程序中首先用AO Config VI配置輸出通道和緩沖區(qū)大小。在第一次循環(huán)時(shí)計(jì)算出初始波形數(shù)據(jù)并由AO Write VI裝入緩沖區(qū),然后AO Start VI開始連續(xù)的波形輸出,如圖7-38(b)所示,在接下來(lái)的循環(huán)中,如果前面板上波形參數(shù)控件配置值有變化,就重新計(jì)算波形并裝入緩沖區(qū),如圖7-38 (c)所示。為了波形平緩過(guò)渡,AO Write VI每次寫緩沖區(qū)大小的二分之一。如果前面板配置的輸出刷新率發(fā)生變化,就調(diào)用Analog Output Clock ConfigVI重新配置輸出時(shí)鐘,如圖7-38 (d)所示。程序每250ms檢查一次前面板控件,以便為其他并行運(yùn)行的程序留出CPU時(shí)間。程序結(jié)束時(shí)的處理與前一例相同。
使用這個(gè)程序在以下情況下會(huì)發(fā)生號(hào)碼為10843的underFlowErr錯(cuò)誤,即寫緩沖太慢:
·計(jì)算機(jī)硬件配置太低。
·同時(shí)運(yùn)行其他程序。
·刷新率配置太高。
·緩沖區(qū)配置太小。
如果數(shù)據(jù)采集卡的模擬輸出有FIFO緩沖,那么將AI Config VI的輸入?yún)?shù)allocatemode配置為use FIFO memory可以解決這個(gè)問(wèn)題。但是很多低價(jià)位數(shù)據(jù)采集卡都沒(méi)有模擬輸出FIFO緩沖,這時(shí)只有降低程序性能來(lái)保證它能夠運(yùn)行。
上一篇:模擬輸入/輸出控制回路
熱門點(diǎn)擊
- 結(jié)構(gòu)類型及變量的定義
- 聲音報(bào)警
- 串口通信
- 雙波峰焊錫波
- PID參數(shù)整定
- 特征信號(hào)選擇與檢測(cè)方法
- 選擇無(wú)鋁PCB材料及焊盤涂鍍層
- 回流區(qū)
- MCS-51早氣機(jī)的內(nèi)部結(jié)構(gòu)
- 共享變量的控件綁定
推薦技術(shù)資料
- 泰克新發(fā)布的DSA830
- 泰克新發(fā)布的DSA8300在一臺(tái)儀器中同時(shí)實(shí)現(xiàn)時(shí)域和頻域分析,DS... [詳細(xì)]
- CV/CC InnoSwitch3-AQ 開
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門信號(hào)調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應(yīng)
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究