久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 探討研華32位DLL驅動程序

探討研華32位DLL驅動程序

作者: 時間:2012-05-14 來源:網絡 收藏

4.4RawData(原始數據)和voltage(電壓值)

以PCL1800為例,它的轉換芯片是12位的,所以它可以把采集的電壓量程分為4096段,這種方式稱為量化,而RawData就是將被采集量量化后的整數值。將量化值用3位十六進制數表示,所以RawData的示數范圍就是000-fff,在內部緩沖區中的數值就是這種量化的原始數據。用戶緩沖區中存放Voltage(電壓值),將RawData轉化為電壓值由CRVFAITransfer函數完成,當PTFAITransfer的DataType=0時,不進行RawData到電壓值的轉化,這時候在用戶緩沖區中得到的就是量化的3位十六進制整數值。

5動態采集程序涉及到中一些參數的分析

5.1PTFAICheck結構的HalfReady域

該域說明哪半個緩沖區已滿。在使用FIFO緩沖區的情況下,FIFO緩沖區和內部數據緩沖區都有半滿(halffull)的情況。容易混淆此處的HalfReady是指FIFO緩沖區中的半區還是內部數據緩沖區的半區。事實上,DRVFAICheck都是返回的內部緩沖區的狀態,不反映FIFO緩沖區狀態;所以此處是指的內部數據緩沖區的半區。

5.2ADSEVTBUFCHANGE事件的觸發時機

第一:雙緩沖區方式下,在A、B兩個內部緩沖區之間切換時。

第二:單緩沖區方式下,在內部數據緩沖區的兩個半緩沖區間切換時。

5.3增益列表起始地址

在編寫數據采集程序時,都要考慮多通道同時采集,而且都要考慮開始通道的任意性,所以通常的做法是為增益列表開辟一塊增益列表存儲區,從0開始每個存儲單元對應一個通道的增益值,但是要注意,在起始通道不為零時不能將這個存儲區的起始地址直接賦給驅動函數的“增益列表起始地址”參數,如PTFAIIntScanStart結構的GainList域;因為是直接從“增益列表起始地址”參數表示的起始地址去提取起始通道的增益值,而不會根據“起始通道”參數在增益列表中選取對應的增益值。

5.4CheckEvent的檢查周期

CheckEvent函數是在一個周期中檢查是否事件發生,如果有就立即返回事件的類型,如果沒有就返回一個“checkeventerror!”錯誤。CheckEvent函數與DRV_FAICheck函數不同,程序需要不的調用DRV_FAICheck函數來檢查硬件工作的最新情況。程序調用DRV_FAICheck函數要占用計算機CPU時間,但是使用CheckEvent,只需要占用CPU調用一次CheckEvent函數的時間,就可以監視一個監視周期內的事件發生情況。在這個周期內沒有事件發生就不占用CPU時間,CheckEvent函數采用同步方式檢查事件的發生。PTCheckEvent結構的Milliseconds域說明了CheckEvent函數的檢查周期。

6結束語

本文著重分析了在使用研華dll驅動程序編寫動態數據采集程序時所碰到的概念及參數。通過本文讀者可能加深對dll驅動程序的認識,從而達到更加自由,靈活使用dll驅動程序的目的。

c++相關文章:c++教程



上一頁 1 2 下一頁

評論


相關推薦

技術專區

關閉