新聞中心

        EEPW首頁 > 電源與新能源 > 設計應用 > 基于手持終端的LCD驅動電路的實現

        基于手持終端的LCD驅動電路的實現

        作者: 時間:2011-08-29 來源:網絡 收藏
        4、初始化函數

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

          初始化函數主要完成初始信息的設置和設備的注冊。

          lcdctrl.c_smdk2440文件

          1、lcdctrl_device結構體

          lcdctrl_device結構體定義了具體操作的各函數指針,包括初始化函數,開啟和關閉函數,亮度、對比度等設置函數。其中LCD關閉函數的本質就是將LCD背光亮度設置為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函數

          這里只敘述亮度設置函數的

          static int smdk2440_lcdctrl_set_brightness( int b)

          { ……

          TCNTB0 = 100;

          TCMPB0 = b*100/100;

          //設置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);}

          函數中的語句大部分是給與定時器相關的寄存器寫值。其中b就是上層函數傳遞下來的bright值,從程序中可以看到,調節亮度本質上是通過TCMPB0寄存器寫入與bright相關的值,控制PWM占空比亮度調節功能。

          3、lcdctrl_device_get_ops函數

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

          struct lcdctrl_device *lcdctrl_device_get_ops(void)

          {return smdk2440_dev;}

          此函數被lcdctrl.c初始化時調用,將設備指向smdk2440_dev。

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

          Qtopia應用程序

          Qtopia應用程序提供人機操作界面并調用底層程序完成LCD控制功能,這里,仍然以亮度調節為例敘述應用程序工作過程。

          主要完成功能:

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

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

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

          4、調用底層的程序,通過底層的驅動程序將LCD背光亮度調整為指定值。

          ioctl(fd, _BACKLIGHT_ IOCTL_BRIGHT, bright)。

          ioctl函數調用驅動程序完成亮度的調節。

          結語

          經測試,設計完成的LCD能很好地完成圖形的顯示,電源管理界面中包含了LCD亮度調節功能。通過圖形管理界面能夠方便地管理LCD,達到節約能量、延長工作時間的目的。

        DIY機械鍵盤相關社區:機械鍵盤DIY



        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 上思县| 达孜县| 麦盖提县| 清镇市| 鄂尔多斯市| 汝州市| 许昌县| 六安市| 呼伦贝尔市| 图们市| 南皮县| 疏附县| 安顺市| 金湖县| 眉山市| 牡丹江市| 乌拉特前旗| 蒙自县| 汪清县| 石渠县| 浑源县| 广汉市| 开远市| 邹平县| 遵义市| 肥乡县| 松原市| 原阳县| 郑州市| 绥宁县| 赣州市| 嘉鱼县| 菏泽市| 桦南县| 灌云县| 邯郸县| 西畴县| 汤阴县| 吉林市| 德昌县| 安陆市|