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

          新聞中心

          EEPW首頁(yè) > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 基于手持終端的LCD驅(qū)動(dòng)電路的實(shí)現(xiàn)

          基于手持終端的LCD驅(qū)動(dòng)電路的實(shí)現(xiàn)

          作者: 時(shí)間:2011-08-29 來(lái)源:網(wǎng)絡(luò) 收藏
          4、初始化函數(shù)

          本文引用地址:http://www.ex-cimer.com/article/178670.htm

            初始化函數(shù)主要完成初始信息的設(shè)置和設(shè)備的注冊(cè)。

            lcdctrl.c_smdk2440文件

            1、lcdctrl_device結(jié)構(gòu)體

            lcdctrl_device結(jié)構(gòu)體定義了具體操作的各函數(shù)指針,包括初始化函數(shù),開啟和關(guān)閉函數(shù),亮度、對(duì)比度等設(shè)置函數(shù)。其中LCD關(guān)閉函數(shù)的本質(zhì)就是將LCD背光亮度設(shè)置為0。

            static struct lcdctrl_device smdk2440_dev = {

            init: smdk2440_lcdctrl_init,

            enable: smdk2440_lcdctrl_enable,

            disable: smdk2440_lcdctrl_disable,

            set_intensity: smdk2440_lcdctrl_set_intensity,

            set_brightness: smdk2440_lcdctrl_set_brightness,

            set_contrast: smdk2440_lcdctrl_set_contrast};

            2、smdk2440_lcdctrl_set_brightnes函數(shù)

            這里只敘述亮度設(shè)置函數(shù)的。

            static int smdk2440_lcdctrl_set_brightness( int b)

            { ……

            TCNTB0 = 100;

            TCMPB0 = b*100/100;

            //設(shè)置TCMPB0寄存器的值

            TCON = (TCON ~(0xf)) | ( TCON_0_AUTO | TCON_0_MAN | COUNT_0_OFF);

            TCON = (TCON ~(0xf)) | 0;

            TCON=(TCON ~(0xf)) | (TCON_0_AUTO | COUNT_0_ON);}

            函數(shù)中的語(yǔ)句大部分是給與定時(shí)器相關(guān)的寄存器寫值。其中b就是上層函數(shù)傳遞下來(lái)的bright值,從程序中可以看到,調(diào)節(jié)亮度本質(zhì)上是通過TCMPB0寄存器寫入與bright相關(guān)的值,控制PWM占空比亮度調(diào)節(jié)功能。

            3、lcdctrl_device_get_ops函數(shù)

            用于上層獲取具體設(shè)備的鉤子函數(shù)。代碼如下:

            struct lcdctrl_device *lcdctrl_device_get_ops(void)

            {return smdk2440_dev;}

            此函數(shù)被lcdctrl.c初始化時(shí)調(diào)用,將設(shè)備指向smdk2440_dev。

            至此,程序設(shè)計(jì)完成,為了更好地LCD的管理,需要在上層的Qtopia應(yīng)用程序中提供人機(jī)操作的界面。

            Qtopia應(yīng)用程序

            Qtopia應(yīng)用程序提供人機(jī)操作界面并調(diào)用底層程序完成LCD控制功能,這里,仍然以亮度調(diào)節(jié)為例敘述應(yīng)用程序工作過程。

            主要完成功能:

            1、應(yīng)用程序完成人機(jī)操作的界面,為使用人員提供友好界面;

            2、讀取亮度值,并將其存入變量bright中;

            3、打開設(shè)備文件:fd=open(/dev/devname,O_RDONLY);

            4、調(diào)用底層的程序,通過底層的驅(qū)動(dòng)程序?qū)CD背光亮度調(diào)整為指定值。

            ioctl(fd, _BACKLIGHT_ IOCTL_BRIGHT, bright)。

            ioctl函數(shù)調(diào)用驅(qū)動(dòng)程序完成亮度的調(diào)節(jié)。

            結(jié)語(yǔ)

            經(jīng)測(cè)試,設(shè)計(jì)完成的LCD能很好地完成圖形的顯示,電源管理界面中包含了LCD亮度調(diào)節(jié)功能。通過圖形管理界面能夠方便地管理LCD,達(dá)到節(jié)約能量、延長(zhǎng)工作時(shí)間的目的。

          DIY機(jī)械鍵盤相關(guān)社區(qū):機(jī)械鍵盤DIY



          上一頁(yè) 1 2 3 下一頁(yè)

          評(píng)論


          相關(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); })();