新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于Windows CE.Net操作系統的故障診斷專家系統

        基于Windows CE.Net操作系統的故障診斷專家系統

        作者: 時間:2010-09-19 來源:網絡 收藏


        本文引用地址:http://www.104case.com/article/151514.htm

          在本設計中主要完成A/D的轉換、觸摸屏上觸摸點坐標的顯示、XY軸方向的確定以及有效坐標范圍的確定。整個程序設計包括環境變量初始化、對LCD控制器和串行口的初始化以及觸摸屏控制與顯示程序。觸摸屏的控制與顯示程序包括串口數據傳送、液晶顯示控制、觸摸屏定位、中斷處理程序等。中斷處理程序中又包括A/D轉換、坐標計算、坐標檢測、坐標存儲與顯示。

          3.2 鍵盤驅動

          3.2.1 功能要求

          考慮到設備提供的面積有限,設計5x5矩陣鍵盤滿足實際需求。

          1)實現矩陣鍵盤上所定義的各個按鍵功能。①方向鍵:上、下、左、右;②功能鍵:確定、取消、菜單,通信、導航;③數字鍵:0~9;④擴展功能鍵:星號鍵,井號鍵;

          2)給應用程序提供接口。其中包括:

          ①按鍵消息包括WM_KEYD0WN消息,WM_KEYUP消息,WM_CHAR消息。②按鍵延時要求當用戶按下某個按鍵(電源除外),發送第1條WM_KEYDO-WN消息。對于上、下、左、右鍵,按鍵被按下累計400 ms后,發送第2條WM_KEY_DOWN消息,此后每隔100 ms發送l條WM_KEYDOWN消息,直至按鍵被放開。

          3.2.2 設計步驟

          設計步驟如下:

          1)初始化:初始化主要是進行中斷設置,對鍵盤中斷、GPIO端口中斷屏蔽位和掛起位進行設置。

          2)獲得掃描碼GetScanCode()函數。

          3)獲取虛擬鍵值:通過修改一個影射表,影射表的內容主要是掃描碼與虛擬鍵之間的對應關系。

          4)布設管理。

          3.3 LCD驅動

          LCD主要用于顯示文本和圖形信息。液晶顯示屏具有輕薄、體積小、低功耗、無輻射、平面直角顯示等特點。液晶顯示屏按原理分為STN(超扭曲向列)和TFT(薄膜晶體管)2種。

          GDI(圖形設備顯示接口)是一個系統組件,它用來加載和調用設備驅動。在 CE中,GDI包含在圖形事件用戶界面中。在 CE中,顯示驅動是一個本機驅動,那就意味著有常用的接口,這種接口會給顯示接口提供一組函數集。所以將不會有比較復雜的操作。Win-dows CE顯示驅動只有唯一的一個函數DrvEnableDriver()需要導出,這個函數將會在驅動加載的時候被GDI所調用,同時把函數指針返回給其它的DDI函數。開發的過程中需要注意顯示設備使用的是線性的幀緩沖,這樣由CPU直接控制的顯示內存就需要是連續的。微軟提供了一組C++類叫GPE(圖形原始引擎)。對于圖形的操作都是建立在這個類上。

          IntNumModes():返回顯示驅動所支持的顯示模式數量。

          SCODE GetModeInfo(GPEMode*pMode,int modeNo):返回具體顯示模式的信息,如顯示寬度和高度,一個像素用幾位來表示。

          SCODE SetMode(int modeId,HPALETTE*pPalettetHandle):設置顯示模式。對于不同的顯示設備,我們都需要用這個函數來設置顯示設備的顯示模式。

          SetPointerShape():設置光標位圖。

          MovePointer():移動光標。

          其他的函數接口就不一一介紹,可以參考源代碼。

          4 結束語

          本文以 CE作為目標平臺,實現了在WindowsCE驅動程序設計時,按照先確定要設計的驅動程序類型是本地驅動程序還是流接口驅動程序,再選擇驅動程序開發方法使用分層驅動程序設計。實際運行表明,設計的的鍵盤驅動程序、觸摸屏、LCD驅動、電源管理的驅動程序開發為界面程序的開發提供了一個穩定良好的環境,大大提高了開發的速度。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 札达县| 吉水县| 马边| 内黄县| 阳新县| 宝清县| 博乐市| 茂名市| 溧水县| 石台县| 阿瓦提县| 唐河县| 海丰县| 宁陵县| 永仁县| 台南市| 呼和浩特市| 洛扎县| 海丰县| 修武县| 惠安县| 贵溪市| 汤原县| 滦平县| 兴仁县| 北票市| 内丘县| 民勤县| 西华县| 榆社县| 兴文县| 顺义区| 汕尾市| 育儿| 安阳县| 浦北县| 册亨县| 离岛区| 承德县| 洞头县| 慈利县|