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

正文內(nèi)容

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

2024-09-06 16:24 本頁(yè)面
 

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