3265|9

71

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

EVC下控制LCD的对比度 [复制链接]

我用的是2410的板子,想用EVC编两个按钮控制LCD的对比度和背光灯的开关。但一直找不到方法。请高手指点..

最新回复

象素的地址是连续的 buff=frameP->buffer;//显示的首地址         for(i=0;i  详情 回复 发表于 2008-4-19 09:34
点赞 关注

回复
举报

72

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
这个首先要问你们的硬件工程师有没有提供这样的功能,如果有这样的功能,硬件原理上是什么。

所以基本上,这是一个硬件问题,不是软件问题。
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
我查了一下,好像大题的套路是通过应用程序访问驱动程序,通过改变驱动程序的相关参数来改变LCD的对比度,亮度灯性能。有没有高手做过?给个具体的知道。谢谢!
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

4
 
跪求啊。多给分。。。。
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

5
 
void LcdBacklightOn(DWORD brightness)
{
        UINT32 Result;
       
        Result=XsPwmWriteCtrl(0,0x12);//  写PWM Control Registers,
                                      //   The scaled counter clock frequency is:
                                      //PSCLK_PWM / (PRESCALEx +1)       

        if (brightness <=10)
        brightness = 0;
        else if (brightness >10 && brightness <=25)
        brightness = 11;
        else if (brightness >25 && brightness <=50)
                brightness = 15;
        else if (brightness >50 && brightness <=75)
                brightness = 45;
        else if (brightness >75)
                brightness = 100;

        //Set the duty cycle to 100%
        Result=XsPwmWriteDuty(0,brightness);//写PWM Duty Cycle Registers
                                          
       
        //Set the period value to its max. (0x3FF)
        Result=XsPwmWritePerval(0,0x64);   //写PWM Period Control Registers

        //DBGMSG("Backlight on successfully.\n");

}
只要改变brightness就能看到不同的亮度.至于那三个调用函数,就是给寄存器赋值,这个你要根据硬件的说明.
属于Pulse Width Modulator Controller.但我不清楚你的是不是一样.
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

6
 
谢谢楼上的.我赶紧去是试/.还有对比度的问提.我查了一下,好象是用DriverIOControl函数控制驱动中RGB的颜色深度.但一直没有实验成功.一直没有找到正确的lCD的设备名.请高手指点一下.谢谢
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

7
 
XsPwmWriteCtrl(),XsPwmWriteDuty(),XsPwmWritePerval().如何定义?
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

8
 
那些是给寄存器赋值,你要看你的SPEC.
写PWM Control Registers
写PWM Duty Cycle Registers
写PWM Period Control Registers
这个是根据SPEC说明写的.
我不知道上层函数是什么,因为我是直接给硬件寄存器地址赋值.
我只是把过程告诉你,这不是操作系统的函数,你可以去查一下你的接口函数.
就象下面这样的,
DeviceIoControl(hBacklight, IOCTL_SetPower_BACKLIGHTNESS,(LPVOID)BufIn,sizeof(BufIn), NULL, 0, NULL, NULL);
DeviceIoControl(hBacklight, IOCTL_SetBattery_BACKLIGHTNESS,(LPVOID)BufIn,sizeof(BufIn), NULL, 0, NULL, NULL);
BufIn是亮度值,不好意思

                       
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

9
 
我试验了一种方法:
首先找到帧缓冲地址Framebuf,然后把缓冲区中的数据取出来,然后对每个像素的RGB最大最小值控制,就可以改变屏幕的对比度。缺点是每次刷屏之后都要对全屏进行像素修改,会引起一定的延迟。
 
 
 

回复

90

帖子

0

TA的资源

一粒金砂(初级)

10
 
象素的地址是连续的
buff=frameP->buffer;//显示的首地址
        for(i=0;i<320*240;i++)
        {
                *buff=p;//p是要显示的颜色,这个可以查色度表.
                buff++;
        }
这样速度就快了.不需要重新去计算每个象素的地址.
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表