新聞中心

EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 基于MiniGUI的GPS自動定位系統(tǒng)設(shè)計

基于MiniGUI的GPS自動定位系統(tǒng)設(shè)計

作者: 時間:2012-08-16 來源:網(wǎng)絡(luò) 收藏

3.3 應(yīng)用程序

(1)主程序

主程序流程如圖7(a)所示,用來完成操作的初始化。其中使用語句OSTaskCreate(Task0,(void*)O,TaskStk[TaskStkLengh-1],10)創(chuàng)建任務(wù)O;使用語句_app_entry()創(chuàng)建主線程;使用語句KevMbox=OSMboxCreate(NULL)建立一個郵箱,用于傳遞按鍵消息,最后開始多任務(wù)調(diào)度。

(2)任務(wù)O

任務(wù)O流程如圖7(b)所示,用來完成硬件的初始化。通過I2C接口的輸入引擎讀取按鍵鍵值,如有按鍵按下通過OSMboxPost(KeyMbo-x,(void*)s_key_in)發(fā)送鍵值到KeyMbox郵箱。通過郵局OSTimeDly(5)交出CPU占用資源,運行其他任務(wù)。

(3)入口程序設(shè)計

入口程序如圖7(c)所示,用來完成消息處理。使用語句InitMainWindow()初始化窗體;使用語句ShowWindow(hMainWnd,SW_SHOWNORMAL)顯示窗體,其中hMainWnd為窗體句柄;使用語句GetMessage(Msg,hMainWnd))獲取消息,其中Msg數(shù)據(jù)結(jié)構(gòu)用于保存消息;使用語句Trans-lateMessage(Msg)把消息送入隊列;使用語句DispatchMessage(Msg)分配信息給窗體回調(diào)函數(shù);使用語句MainWindowThreadCleanup(hM-ainWnd)清除線程。

(4)MiniGUI窗體回調(diào)程序設(shè)計

窗體回涮函數(shù)流程如圖7(d)所示,根據(jù)消息類型確定要執(zhí)行的程序。如果消息類型為MSG-PAINT,先調(diào)用數(shù)據(jù)讀取以及處理程序,用MiniGUI內(nèi)部函數(shù)TextOut(hdc,10,10,”顯示字符”),在指置顯示字符;最后調(diào)用μC/OS-II系統(tǒng)函數(shù)OSTimeDly(100)開始任務(wù)調(diào)度。如果消息類型為MSG_CLOSE,用語句DestroyMainWindow(hWnd)銷毀窗體;用語句PostQuitMessage(hWnd)發(fā)送退出消息。

4 系統(tǒng)實驗

系統(tǒng)軟件采用ADS V1.2開發(fā)、調(diào)試,使用PC機對MiniGUI源代碼進(jìn)行編譯,生成MiniGUI靜態(tài)鏈接庫文件MiniGUI-Lib.a。然后交叉編譯MiniGUI應(yīng)用程序,與MiniGUI靜態(tài)鏈接庫、POSIX線程庫鏈接,生成二進(jìn)制文件下載到LPC2103的FLASH運行。系統(tǒng)軟件編譯過程如圖8所示。

模塊和LPC2103串口0連接,并放置到室外,將生成的可執(zhí)行文件燒寫到LPC2103的FLASH內(nèi)部,上電運行,運行結(jié)果如圖9所示。

結(jié)語

系統(tǒng)運行穩(wěn)定,具有功耗低、速度快、可裁剪、可固化、實時性能優(yōu)越等特點。能夠準(zhǔn)確顯示經(jīng)度、緯度、系統(tǒng)日期、時間、海拔、航向、航速等信息,并可以對所處位置進(jìn)行查詢。


上一頁 1 2 下一頁

評論


相關(guān)推薦

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

關(guān)閉