freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于arm的觸摸屏控制(編輯修改稿)

2025-09-06 16:24 本頁面
 

【文章內(nèi)容簡介】 e uint16 *DAT_Point。uint32 addr。uint32 x1, y1。 x1 = GUI_LCM_XMAX x 1。 // 對于9111屏有效y1 = GUI_LCM_YMAX y 1。 // 對于9111屏有效/* 找出目標地址 */addr = y1*GUI_LCM_XMAX + x1。DAT_Point = (void *) S1D13503_DAT。DAT_Point += addr。*DAT_Point = gui_disp_buf[y][x]。 // 輸出數(shù)據(jù) }{..... /*與LCM相關(guān)的GUI接口函數(shù)*/見附表二} 用戶程序本程序?qū)崿F(xiàn)讀取觸摸屏的動作,并顯示一個方點在對應(yīng)的液晶屏幕上。程序運行時,首先進行必要的初始化[8],即初始化GPIO、初始化LCM、將液晶屏片選信號CS置低、填充液晶屏幕背景色并校準屏幕,然后判斷是否有觸摸動作,如沒有則繼續(xù)等待,直到有觸摸輸入時,讀取觸摸動作并判斷觸摸是否有效,如無效則返回繼續(xù)等待觸摸,若有效,蜂鳴器響一聲,獲取當前觸摸坐標并進行校準,最后將觸摸結(jié)果在液晶屏上顯示。流程圖如圖6所示。圖6 用戶程序流程圖include void GPIO_Initialize(void)。void GetLCD_XY(uint16 *vx, uint16 *vy)。void DelayNS(uint32 dly)。uint8 Calibration(void)。uint16 errx1, erry1, errx2, erry2。 // 一般存放基準點坐標uint16 diffx, diffy。 // 一般存放基準點坐標差值uint16 x, y。 // 一般存放當前坐標本段程序名稱main,其為程序的主函數(shù),功能包括GPIO和LCM的初始化,填充顏色,校準屏幕,獲取當前坐標,并進行顯示[9]。int main (void){ GPIO_Initialize()。 // 初始化GPIOGPIO GUI_Initialize()。 // 初始化LCM GUI_FillSCR(WHITE)。 // 填充白色背景 while(Calibration() != 1)。 // 校準屏幕while(1){GetLCD_XY(amp。x, amp。y)。 // 獲取當前坐標x = (x errx1) * 280 / diffx + 20。 // 通過基準點校準xy = (y erry1) * 200 / diffy + 20。 // 通過基準點校準y /* 通過點函數(shù)構(gòu)成一個方點畫在LCD上 */GUI_Point( x+1, y, BLACK)。GUI_Point( x1, y, BLACK)。GUI_Point( x, y+1, BLACK)。GUI_Point( x, y1, BLACK)。GUI_Point( x+1, y+1, BLACK)。GUI_Point( x1, y1, BLACK)。GUI_Point( x+1, y1, BLACK)。GUI_Point( x1, y+1, BLACK)。GUI_Point( x, y, BLACK)。}return 0。}子程序GPIO_Initialize(),功能是初始化觸摸屏和蜂鳴器的GPIOvoid GPIO_Initialize(void){…… 見附錄三}函數(shù)Calibration(),功能是獲取校準基準點坐標,其中uint16 *errx,用于保存校準點x坐標(LCD)的變量指針,uint16 *erry,用于保存校準點y坐標(LCD)的變量指針uint8 Calibration(void){ …… 見附錄三}函數(shù)GetLCD_XY(),功能是讀取觸摸屏上觸摸點的坐標,在讀取過程中,程序會一直等待,直到有觸摸輸入[10]。其原理是先通測量y軸的觸摸輸入,判斷是否有觸摸動作。如果有,則行6次數(shù)據(jù)采集,并進行去極值平均濾波處理。最后還要判斷觸摸輸入是否合法,只有當觸摸輸入合法時才返回。其中,x用于保存觸摸點x坐標(LCD)的變量指針 ,y用于保存觸摸點y坐標(LCD)的變量指針。void GetLCD_XY(uint16 *vx, uint16 *vy){ …… 見附錄三}本程序名稱為DelayNS(),功能是實現(xiàn)長軟件延時(dly毫秒,與程序運行速度有關(guān)),消除震顫,其中dly為延時參數(shù),值越大,延時越久。void DelayNS(uint32 dly){ …… 見附錄三 }函數(shù)Beep(),其功能實現(xiàn)控制蜂鳴器響一聲。void Beep(void){ …… 見附錄三}五 總結(jié) 本設(shè)計使用PHILIPS公司的LPC2290的ARM 單片機,從觸摸屏和液晶顯示器的性能方面為出發(fā)點,通過C語言編程,來設(shè)計實現(xiàn)的四線電阻式觸摸屏產(chǎn)品在實際應(yīng)用中得到了很好的效果,實現(xiàn)了先進的觸摸屏顯示、控制技術(shù),改善了傳統(tǒng)的設(shè)備顯示與控制方式,性價比高,低功耗,提高了人機交互的友好性,使設(shè)備更加人性化,有很強的應(yīng)用前景,相信其會變得也越來越普及,并成為當今的主流配置。參考文獻[1] 歐慶于等. 基于S3C44B0X+uClinux的觸摸屏設(shè)計. 計算機與數(shù)字工程[J], 2005, 12(3):165.[2] 周立功等. ARM 與嵌入式系基礎(chǔ)教程[M]. 北京:北京航空航天大學(xué)出版社, 2005: 379381.[3] 周立功等. ARM嵌入式系統(tǒng)實驗教程(三) [M]. 北京:北京航空航天大學(xué)出版社, 2005: 2122.[4] 陳辰等. ARM芯片S3C2410觸摸屏驅(qū)動的研究與開發(fā). 科學(xué)技術(shù)與工程[J], 2006,3(2):327.[5] 王洪等. ARM [J], 2007,2(3):166.[6] 馬忠梅. 單片機的C語言應(yīng)用程序設(shè)計[M].北京:北京航空航天大學(xué)出版社,2003: 120125.[7] 吳明暉等. 基于ARM的嵌入式系統(tǒng)開發(fā)與應(yīng)用[M]. 北京: 人民郵電出版社, 2004: 7274.[8] 劉顯榮. [J],2007, 11(3):185.[9] 杜春雷. ARM體系結(jié)構(gòu)與編程[M]. 北京: 清華大學(xué)出版社, 2003: 6162.[10] 壇浩強. C程序設(shè)計(第二版)[M]. 北京: 清華大學(xué)出版社, 1999: 107108.附錄一函數(shù)ADS7843_IRQR(),實現(xiàn)對ADS7843的PENIRQ引腳測量,返回當前此引腳的電平值。uint8 ADS7843_IRQR(void){ uint8 dat[3]。DelayNo(1)。if(IO0PINamp。ADS7843_IRQ) dat[0] = 1。else dat[0] = 0。if(IO0PINamp。ADS7843_IRQ) dat[1] = 1。else dat[1] = 0。if(IO0PINamp。ADS7843_IRQ) dat[2] = 1。else dat[2] = 0。if((dat[0] + dat[1] + dat[2]) 1) return(1)。else return(0)。}函數(shù)ADS7843_WriteRead(),功能是對ADS7843進行讀寫操作。uint16 ADS7843_WriteRead(uint8 data){ uint8 i。uint16 ret_dat。data = data|0x80。 // 設(shè)置S位ADS7843_IOInit()。ADS7843_CSC()。 // CS = 0for(i=0。 i8。 i++){ if( (dataamp。0x80) != 0 ) ADS7843_DINS
點擊復(fù)制文檔內(nèi)容
語文相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1