<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > WindowsCE.Net下基于流驅(qū)動(dòng)的AD驅(qū)動(dòng)設(shè)計(jì)與實(shí)現(xiàn)

          WindowsCE.Net下基于流驅(qū)動(dòng)的AD驅(qū)動(dòng)設(shè)計(jì)與實(shí)現(xiàn)

          作者: 時(shí)間:2012-03-24 來(lái)源:網(wǎng)絡(luò) 收藏

          當(dāng)應(yīng)用程序不再使用該設(shè)備時(shí),它可調(diào)用CloseHandle()將設(shè)備關(guān)閉。當(dāng)系統(tǒng)不再使用設(shè)備時(shí),應(yīng)用程序可調(diào)用DeactivateDevice()函數(shù)把該驅(qū)動(dòng)程序卸載。

          圖2 流驅(qū)動(dòng)工作原理順序圖

          3 AD驅(qū)動(dòng)的實(shí)現(xiàn)

          AD驅(qū)動(dòng)程序以動(dòng)態(tài)鏈接庫(kù)方式編寫(xiě),采用的標(biāo)準(zhǔn)形式。在ADC_ Init函數(shù)中,主要進(jìn)行初始化。函數(shù)ADC_Open 只需要返回一個(gè)不為0的值來(lái)判斷打開(kāi)設(shè)備成功。在函數(shù) ADC_Write 中通過(guò)寫(xiě)入要選擇的通道號(hào)和預(yù)分頻值,它控制通道的動(dòng)作。函數(shù) ADC_Read 中的代碼最為關(guān)鍵,它完成讀取模擬量向數(shù)字量的轉(zhuǎn)換結(jié)果,其部分主要代碼如下:

          pADCIOreg->rADCCON = (114)|(ADCPRS6)|(ch3); //建立通道號(hào)

          pADCIOreg->rADCCON |= 0x1; // 開(kāi)始轉(zhuǎn)換

          while(pADCIOreg->rADCCON 0x1); //檢測(cè)開(kāi)始位是否為低電平

          while(!(pADCIOreg->rADCCON 0x8000)); //檢測(cè)轉(zhuǎn)換是否完畢標(biāo)志位

          return ( (double)(pADCIOreg->rADCDAT0 0x3ff) ); //返回轉(zhuǎn)換完的數(shù)值

          其中 ch 表示采樣通道號(hào), ADCPRS為預(yù)分頻值。其它函數(shù)均為空。

          4 ADC驅(qū)動(dòng)封裝及其在Windows CE.Net中的添加www.51kaifa.com

          通過(guò)以上的工作,編譯出一個(gè) DLL 函數(shù),接著建立一個(gè)自己的 def 文件,導(dǎo)出所需要的流接口函數(shù)。新建一個(gè)記事本文件,命名為 AdcDriver.Def :

          LIBRARY AdcDriver

          EXPORTS

          ADC_Init

          ADC_Open

          ADC_Readwww.51kaifa.com

          ADC_Write

          ADC_Close

          ADC_Deinit

          然后編寫(xiě)一個(gè)注冊(cè)表文件, 命名為AdcDriver.reg :

          [HKEY_LOCAL_MACHINE Drivers BuiltIn ADC]

          "Index" = dword :1

          "Prefix" = "ADC"

          "Dll" = "AdcDriver.dll"

          "Order" = dword :0

          最后在 Platform Builder中新建一個(gè) CEC 文件,首先添加一個(gè)BuildMethod ,它的任務(wù)是復(fù)制注冊(cè)表到 Windows CE.Net 的系統(tǒng)目錄下面。然后再添加一個(gè) Bib File,其主要任務(wù)是把編譯的 AdcDriver.dll 文件添加到 Windows CE.Net 內(nèi)核中去。保存寫(xiě)好的CEC文件。在Platform Builder 中 , 打開(kāi)“File”菜單,添加已經(jīng)編寫(xiě)好的 CEC 特征到系統(tǒng)選項(xiàng)中去。生成系統(tǒng)的時(shí)候, 添加 CEC 特性,這樣驅(qū)動(dòng)就加入到操作系統(tǒng)里了。

          5 結(jié)速語(yǔ)

          文中作者分析了 Windows CE.Net 的的工作原理順序,設(shè)計(jì)實(shí)現(xiàn)了Windows CE.Net下的AD驅(qū)動(dòng),并通過(guò)Platform builder將其編譯到操作系統(tǒng)。而本系統(tǒng)再配上 EVC 開(kāi)發(fā)的圖形界面軟件,可以開(kāi)發(fā)出各種使用的設(shè)備,如移動(dòng)數(shù)據(jù)采集器等,在現(xiàn)代化檢測(cè)領(lǐng)域有很強(qiáng)的實(shí)用性。本文作者創(chuàng)新點(diǎn):分析了Windows CE.Net下流驅(qū)動(dòng)的執(zhí)行順序以及上層文件API如何調(diào)用流驅(qū)動(dòng),并給出將編寫(xiě)的驅(qū)動(dòng)加入到操作系統(tǒng)的詳細(xì)步驟,該驅(qū)動(dòng)設(shè)計(jì)簡(jiǎn)單,應(yīng)用程序可以靈活調(diào)用。

          參考文獻(xiàn)

          [1] 李蒙,舒云星.Windows CE驅(qū)動(dòng)程序開(kāi)發(fā)[J].計(jì)算機(jī)工程與設(shè)計(jì).2004, Vol.25, No.6 .

          [2]何宗鍵. Windows CE嵌入式系統(tǒng)[M]. 北京航空航天大學(xué)出版社. 2006,9.www.51kaifa.com

          [3] 楊軍波, 須文波. 基于WinCE環(huán)境的CAN適配卡驅(qū)動(dòng)程序的設(shè)計(jì)與實(shí)現(xiàn)[J]. 微計(jì)算機(jī)信息. 2005,21-12,2.

          [4]那洪洋, 李楊, 楊文通. WinCE.Net系統(tǒng)下USB總線驅(qū)動(dòng)程序?qū)崿F(xiàn)的研究[J]. 微計(jì)機(jī)應(yīng)用. 2006, Vol.27, No.2.


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();