新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于嵌入式的故障診斷專家系統(tǒng)驅(qū)動(dòng)程序設(shè)計(jì)

基于嵌入式的故障診斷專家系統(tǒng)驅(qū)動(dòng)程序設(shè)計(jì)

作者: 時(shí)間:2010-09-10 來源:網(wǎng)絡(luò) 收藏
在本設(shè)計(jì)中主要完成A/D的轉(zhuǎn)換、觸摸屏上觸摸點(diǎn)坐標(biāo)的顯示、XY軸方向的確定以及有效坐標(biāo)范圍的確定。整個(gè)包括環(huán)境變量初始化、對(duì)LCD控制器和串行口的初始化以及觸摸屏控制與顯示程序。觸摸屏的控制與顯示程序包括串口數(shù)據(jù)傳送、液晶顯示控制、觸摸屏定位、中斷處理程序等。中斷處理程序中又包括A/D轉(zhuǎn)換、坐標(biāo)計(jì)算、坐標(biāo)檢測、坐標(biāo)存儲(chǔ)與顯示。
3.2 鍵盤
3.2.1 功能要求

考慮到設(shè)備提供的面積有限,設(shè)計(jì)5x5矩陣鍵盤滿足實(shí)際需求。
1)實(shí)現(xiàn)矩陣鍵盤上所定義的各個(gè)按鍵功能。①方向鍵:上、下、左、右;②功能鍵:確定、取消、菜單,通信、導(dǎo)航;③數(shù)字鍵:0~9;④擴(kuò)展功能鍵:星號(hào)鍵,井號(hào)鍵;
2)給應(yīng)用程序提供接口。其中包括:
①按鍵消息包括WM_KEYD0WN消息,WM_KEYUP消息,WM_CHAR消息。②按鍵延時(shí)要求當(dāng)用戶按下某個(gè)按鍵(電源除外),發(fā)送第1條WM_KEYDO-WN消息。對(duì)于上、下、左、右鍵,按鍵被按下累計(jì)400 ms后,發(fā)送第2條WM_KEY_DOWN消息,此后每隔100 ms發(fā)送l條WM_KEYDOWN消息,直至按鍵被放開。
3.2.2 設(shè)計(jì)步驟
設(shè)計(jì)步驟如下:
1)初始化:初始化主要是進(jìn)行中斷設(shè)置,對(duì)鍵盤中斷、GPIO端口中斷屏蔽位和掛起位進(jìn)行設(shè)置。
2)獲得掃描碼GetScanCode()函數(shù)。
3)獲取虛擬鍵值:通過修改一個(gè)影射表,影射表的內(nèi)容主要是掃描碼與虛擬鍵之間的對(duì)應(yīng)關(guān)系。
4)布設(shè)管理。
3.3 LCD
LCD主要用于顯示文本和圖形信息。液晶顯示屏具有輕薄、體積小、低功耗、無輻射、平面直角顯示等特點(diǎn)。液晶顯示屏按原理分為STN(超扭曲向列)和TFT(薄膜晶體管)2種。
GDI(圖形設(shè)備顯示接口)是一個(gè)系統(tǒng)組件,它用來加載和調(diào)用設(shè)備。在Windows CE中,GDI包含在圖形事件用戶界面中。在Windows CE中,顯示驅(qū)動(dòng)是一個(gè)本機(jī)驅(qū)動(dòng),那就意味著有常用的接口,這種接口會(huì)給顯示接口提供一組函數(shù)集。所以將不會(huì)有比較復(fù)雜的操作。Win-dows CE顯示驅(qū)動(dòng)只有唯一的一個(gè)函數(shù)DrvEnableDriver()需要導(dǎo)出,這個(gè)函數(shù)將會(huì)在驅(qū)動(dòng)加載的時(shí)候被GDI所調(diào)用,同時(shí)把函數(shù)指針返回給其它的DDI函數(shù)。開發(fā)的過程中需要注意顯示設(shè)備使用的是線性的幀緩沖,這樣由CPU直接控制的顯示內(nèi)存就需要是連續(xù)的。微軟提供了一組C++類叫GPE(圖形原始引擎)。對(duì)于圖形的操作都是建立在這個(gè)類上。
IntNumModes():返回顯示驅(qū)動(dòng)所支持的顯示模式數(shù)量。
SCODE GetModeInfo(GPEMode*pMode,int modeNo):返回具體顯示模式的信息,如顯示寬度和高度,一個(gè)像素用幾位來表示。
SCODE SetMode(int modeId,HPALETTE*pPalettetHandle):設(shè)置顯示模式。對(duì)于不同的顯示設(shè)備,我們都需要用這個(gè)函數(shù)來設(shè)置顯示設(shè)備的顯示模式。
SetPointerShape():設(shè)置光標(biāo)位圖。
MovePointer():移動(dòng)光標(biāo)。
其他的函數(shù)接口就不一一介紹,可以參考源代碼。

4 結(jié)束語
本文以Windows CE作為目標(biāo)平臺(tái),實(shí)現(xiàn)了在WindowsCE驅(qū)動(dòng)時(shí),按照先確定要設(shè)計(jì)的驅(qū)動(dòng)程序類型是本地驅(qū)動(dòng)程序還是流接口驅(qū)動(dòng)程序,再選擇驅(qū)動(dòng)程序開發(fā)方法使用分層驅(qū)動(dòng)。實(shí)際運(yùn)行表明,設(shè)計(jì)的操作系統(tǒng)的鍵盤驅(qū)動(dòng)程序、觸摸屏、LCD驅(qū)動(dòng)、電源管理的驅(qū)動(dòng)程序開發(fā)為界面程序的開發(fā)提供了一個(gè)穩(wěn)定良好的環(huán)境,大大提高了開發(fā)的速度。

本文引用地址:http://m.butianyuan.cn/article/151575.htm
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

上一頁 1 2 3 下一頁

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉