光電旋轉編碼器的原理及應用方法
Windows CE流接口驅動(dòng)程序模型要求驅動(dòng)程序開(kāi)發(fā)者編寫(xiě)10個(gè)接口函數,針對光電編碼器的驅動(dòng)主要應完成設備初始化和數據讀取2個(gè)函數的編寫(xiě)。WindowsCE設備文件名前綴由3個(gè)大寫(xiě)字母組成,操作系統使用這3個(gè)字母來(lái)識別與流接口驅動(dòng)程序相對應的設備。這里定義設備文件名前綴為“OED”(OptICal Encoder),其中設備初始化函數OED_Init()在Windows CE裝載驅動(dòng)程序時(shí)用于創(chuàng )建中斷事件和中斷服務(wù)線(xiàn)程。在函數OED_Read()中將光電編碼器的狀態(tài)(OED_Status)返回。
3.4 封裝驅動(dòng)程序并加入到WinCE中
根據上述方法編譯出動(dòng)態(tài)鏈接庫(DLL)還不夠,因為它的接口函數還沒(méi)有導出,還需要告訴鏈接程序輸出什么樣的函數,因此必須建立一個(gè)后綴名為def的文件。在本設計中為OpticalEnccder.def。下面是此文件的內容:

一個(gè)具體的流接口驅動(dòng)程序和注冊表是密不可分的。向WinCE內核添加注冊表項的方法有兩種:一種是直接修改Platform Builder下的reg文件;另一種是自己編寫(xiě)一個(gè)注冊表文件,通過(guò)添加組件的方法將動(dòng)態(tài)鏈接庫文件添加到內核中。這里用第2種方法,將OpticalEncoder.dll添加到內核中。編寫(xiě)的注冊表文件內容如下:

最后編寫(xiě)一個(gè)CEC文件,完成對定制內核注冊表部分的修改并將OpticalEncoder.dll添加到系統內核中去,然后在Platform Builder中就可以直接添加已經(jīng)編寫(xiě)好的驅動(dòng)程序了。
結語(yǔ)
本文主要介紹了光電旋轉編碼器的原理及應用方法,并詳細介紹了WinCE驅動(dòng)程序的結構,成功地開(kāi)發(fā)出了光電編碼器在嵌入式操作系統WinCE下的驅動(dòng)程序。實(shí)驗證明,該方法正確可行,程序運行穩定可靠。
51單片機相關(guān)文章:51單片機教程
評論