基于嵌入式Linux的LCD背光調(diào)節(jié)及驅(qū)動(dòng)的實(shí)現(xiàn)
LCD背光調(diào)節(jié)電路如圖2所示。本文引用地址:http://m.butianyuan.cn/article/149184.htm
圖2中ZXLD1100是一個(gè)電感式的PFM(Pulse Frequency Modulation)升壓轉(zhuǎn)換器,用于驅(qū)動(dòng)白光LED。當(dāng)LCD正常工作時(shí),ZXLD1100的EN端被置高電平時(shí),輸出端將得到驅(qū)動(dòng)LCD背光源所需的工作電壓。將S3C2440的端口GPB1與ZXLD1100的使能端相連,通過PWM信號(hào)使能ZXLD1100,可以使LCD背光工作在較低的功率下。
圖2中按鍵S1_KEY用于調(diào)高背光亮度,S2_KEY用于調(diào)低背光亮度。S1_KEY和S2_KEY所用到的外部中斷分別是EINT0和EINT13。當(dāng)按鍵按下時(shí),系統(tǒng)根據(jù)傳入的按鍵編號(hào)控制GPB1輸出PWM信號(hào)占空比,由此完成了對(duì)設(shè)備背光的軟件控制,實(shí)現(xiàn)背光亮度的調(diào)節(jié)。
3 背光調(diào)節(jié)的軟件設(shè)計(jì)
背光調(diào)節(jié)的軟件部分主要是驅(qū)動(dòng)程序的設(shè)計(jì),設(shè)備驅(qū)動(dòng)程序是連接硬件和操作系統(tǒng)內(nèi)核的橋梁,它為應(yīng)用程序屏蔽了硬件的細(xì)節(jié),應(yīng)用程序?qū)⑹褂媒y(tǒng)一的系統(tǒng)調(diào)用接口來訪問設(shè)備。Linux系統(tǒng)將設(shè)備分為3種基本類型,即字符設(shè)備、塊設(shè)備和網(wǎng)絡(luò)設(shè)備。本文涉及的背光驅(qū)動(dòng)屬于字符設(shè)備驅(qū)動(dòng)程序。采用Linux作為嵌入式操作系統(tǒng),內(nèi)核版本為Linux 2.6.32,根文件系統(tǒng)采用Yaffs2,應(yīng)用程序采用了Busybox。背光驅(qū)動(dòng)程序的工作流程框圖如圖3所示。
(1)當(dāng)加載驅(qū)動(dòng)時(shí),調(diào)用初始化函數(shù)s3c_bl_pwm_init()。該函數(shù)會(huì)調(diào)用request_irq()函數(shù)來注冊(cè)中斷。request_irq()會(huì)操作中斷描述符數(shù)組button_irqs。中斷描述符數(shù)組的主要功能是記錄中斷號(hào)對(duì)應(yīng)的按鍵編號(hào)和GPIO端口。
(2)當(dāng)中斷到來時(shí),會(huì)到中斷描述符數(shù)組button_irqs中查詢中斷號(hào)對(duì)應(yīng)的按鍵編號(hào)。然后調(diào)用中斷處理函數(shù)等操作調(diào)節(jié)設(shè)備背光。
(3)當(dāng)卸載驅(qū)動(dòng)時(shí),調(diào)用退出函數(shù)s3c_bl_pwm_exit()。該函數(shù)中會(huì)調(diào)用free_irq(),操作中斷描述符數(shù)組button_irqs,釋放設(shè)備所使用的中斷號(hào)并刪除對(duì)應(yīng)中斷處理函數(shù)。
LCD顯示屏相關(guān)文章:lcd顯示屏原理
lcd相關(guān)文章:lcd原理
評(píng)論