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

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 基于Cortex-M3的TFT觸摸屏在環(huán)境監(jiān)控系統(tǒng)中的應(yīng)用

          基于Cortex-M3的TFT觸摸屏在環(huán)境監(jiān)控系統(tǒng)中的應(yīng)用

          作者: 時間:2010-09-28 來源:網(wǎng)絡(luò) 收藏


          OS_CPU.H中包含兩部分的代碼,數(shù)據(jù)類型定義代碼和與處理器相關(guān)的代碼。其中數(shù)據(jù)類型重定義代碼是用C語言中short,int,long等,數(shù)據(jù)類型是與特定的處理器相關(guān)的,因此在μCOS-Ⅱ重新定義為移植性很強的定義方式。在OS_CPU.H剩下的部分是移植必須定義底層函數(shù)的聲明。在LPC1758的移植中為了使底層接口函數(shù)與處理器的狀態(tài)無關(guān),同時使任務(wù)調(diào)用相應(yīng)的函數(shù)不需要知道函數(shù)的位置。在本移植中使用軟中斷指令SWI作為底層接口,使用不同的功能號來區(qū)分各函數(shù)。調(diào)用這些底層函數(shù),只需要使用一條SWI指令并跟上一個功能號來區(qū)別你要調(diào)用那個函數(shù)即可。任務(wù)切換函數(shù)為OS_TASK_SW(void),并使用軟中斷0x00。CPU_C.C中主要是軟中斷的實現(xiàn)和底層函數(shù)的實現(xiàn)及初始化任務(wù)堆棧函數(shù)的實現(xiàn),其偽代碼如下:

          處理器能支持一定數(shù)量的數(shù)據(jù)存儲硬件堆棧;用C語言可以開中斷/關(guān)中斷,根據(jù)不同的Num值跳轉(zhuǎn)到不同的底層服務(wù)函數(shù)地址。
          系統(tǒng)的程序包括三個任務(wù):實時顯示屏幕數(shù)據(jù)任務(wù),采集數(shù)據(jù)函數(shù),響應(yīng)任務(wù)。設(shè)計中采用了任務(wù)嵌套的方式,將數(shù)據(jù)采集和響應(yīng)嵌套到實時顯示屏幕數(shù)據(jù)任務(wù)之中,這樣數(shù)據(jù)在各個任務(wù)之間的傳遞很有邏輯性,整個系統(tǒng)比較健壯。任務(wù)間的通信如圖8所示。


          移植μCOS-Ⅱ是為了在自己系統(tǒng)中使用μ肛COS-Ⅱ,要在自己的系統(tǒng)中使用μCOS-Ⅱ編寫程序。程序包括相應(yīng)的頭文件,任務(wù)堆棧的宏文件和任務(wù)相關(guān)的文件。由于每個任務(wù)都是獨立的,所以堆棧部分的宏定義的代碼是應(yīng)用程序必須要有的。建立任務(wù)之前必須初始化任務(wù)并建立一個空閑的任務(wù)。在建立多任務(wù)時,必須通過OSTaskCreat()函數(shù)建立至少一個用戶任務(wù)。建立好任務(wù)后,利用OSStart()函數(shù)開始任務(wù)。應(yīng)用函數(shù)主函數(shù)如下:


          4 結(jié)語
          利用LPC1758處理器成功驗證了采用ARM公司內(nèi)核的MCU驅(qū)動的可能,包括以上硬件方案的提出和軟件系統(tǒng)移植的實現(xiàn),觸摸屏單元提供友好的人機界面,且具有堅固耐用、反應(yīng)速度快、節(jié)省空間、易于交流等許多優(yōu)點。隨著多媒體查詢的與日遞增,在未來的電子產(chǎn)品中,觸摸屏無疑將成為輸入設(shè)備的主流。


          上一頁 1 2 3 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(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); })();