基于Cortex-M3的TFT觸摸屏在環境監控系統中的應用
OS_CPU.H中包含兩部分的代碼,數據類型定義代碼和與處理器相關的代碼。其中數據類型重定義代碼是用C語言中short,int,long等,數據類型是與特定的處理器相關的,因此在μCOS-Ⅱ重新定義為移植性很強的定義方式。在OS_CPU.H剩下的部分是移植必須定義底層函數的聲明。在LPC1758的移植中為了使底層接口函數與處理器的狀態無關,同時使任務調用相應的函數不需要知道函數的位置。在本移植中使用軟中斷指令SWI作為底層接口,使用不同的功能號來區分各函數。調用這些底層函數,只需要使用一條SWI指令并跟上一個功能號來區別你要調用那個函數即可。任務切換函數為OS_TASK_SW(void),并使用軟中斷0x00。CPU_C.C中主要是軟中斷的實現和底層函數的實現及初始化任務堆棧函數的實現,其偽代碼如下:
處理器能支持一定數量的數據存儲硬件堆棧;用C語言可以開中斷/關中斷,根據不同的Num值跳轉到不同的底層服務函數地址。
系統的應用程序包括三個任務:實時顯示屏幕數據任務,采集數據函數,觸摸屏響應任務。設計中采用了任務嵌套的方式,將數據采集和觸摸屏響應嵌套到實時顯示屏幕數據任務之中,這樣數據在各個任務之間的傳遞很有邏輯性,整個系統比較健壯。任務間的通信如圖8所示。
移植μCOS-Ⅱ是為了在自己系統中使用μ肛COS-Ⅱ,要在自己的系統中使用μCOS-Ⅱ編寫應用程序。應用程序包括相應的頭文件,任務堆棧的宏文件和任務相關的文件。由于每個任務都是獨立的,所以堆棧部分的宏定義的代碼是應用程序必須要有的。建立任務之前必須初始化任務并建立一個空閑的任務。在建立多任務時,必須通過OSTaskCreat()函數建立至少一個用戶任務。建立好任務后,利用OSStart()函數開始任務。應用函數主函數如下:
4 結語
利用LPC1758處理器成功驗證了采用ARM公司Cortex-M3內核的MCU驅動TFT觸摸屏的可能,包括以上硬件方案的提出和軟件系統移植的實現,TFT觸摸屏單元提供友好的人機界面,且具有堅固耐用、反應速度快、節省空間、易于交流等許多優點。隨著多媒體查詢的與日遞增,在未來的電子產品中,觸摸屏無疑將成為輸入設備的主流。
評論