新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于S3C2440A終端LCD驅(qū)動電路的設(shè)計與實現(xiàn)

        基于S3C2440A終端LCD驅(qū)動電路的設(shè)計與實現(xiàn)

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

        本文引用地址:http://www.104case.com/article/150246.htm

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

          lcdctrl.c_smdk2440文件

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

          lcdctrl_device結(jié)構(gòu)體定義了具體操作的各函數(shù)指針,包括初始化函數(shù),開啟和關(guān)閉函數(shù),亮度、對比度等設(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ù)中的語句大部分是給與定時器相關(guān)的寄存器寫值。其中b就是上層函數(shù)傳遞下來的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初始化時調(diào)用,將設(shè)備指向smdk2440_dev。

          至此,程序完成,為了更好地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ū)動程序?qū)CD背光亮度調(diào)整為指定值。

          ioctl(fd, _BACKLIGHT_ IOCTL_BRIGHT, bright)。

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

          結(jié)語

          經(jīng)測試,完成的LCD能很好地完成圖形的顯示,電源管理界面中包含了LCD亮度調(diào)節(jié)功能。

          LCD驅(qū)動是手持產(chǎn)品的重要組成部分。本文設(shè)計并實現(xiàn)了的手持LCD驅(qū)動。通過圖形管理界面能夠方便地管理LCD,達(dá)到節(jié)約能量、延長手持終端工作時間的目的。

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



        上一頁 1 2 3 下一頁

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 航空| 茶陵县| 洛阳市| 富锦市| 岑巩县| 准格尔旗| 马龙县| 贵阳市| 枣阳市| 天长市| 仪征市| 临夏市| 安仁县| 五峰| 邵阳县| 西乌| 徐闻县| 隆子县| 江永县| 保山市| 讷河市| 苍南县| 巴东县| 临夏市| 安国市| 东乌珠穆沁旗| 宜兰市| 彰化市| 沙雅县| 隆林| 安宁市| 呼图壁县| 旌德县| 连江县| 汪清县| 兰坪| 德州市| 鄂托克前旗| 西乌珠穆沁旗| 昌平区| 南充市|