s5p4418 PWM亮度调节修改

来源:互联网 发布:公共基础知识考试软件 编辑:程序博客网 时间:2024/05/02 00:47

PWM程序修改pwm.c修改函数

pwm.c 在文件中的位置android/kernel/arch/arm/mach-s5p4418/soc 

这里根据界面的亮度条,调节亮度,原来范围太窄,这里将亮度范围调宽。修改相应的数值参数即可。

#define PWM_COMPARE(c, d) (((10 > c ? c * 10 : c) * d) / (100 * (10 > c ? 10 : 1)))
unsigned long nxp_soc_pwm_set_frequency(int ch, unsigned int request, unsigned int duty)
{


if (clock) {
pwm->request = request;
pwm->rate = clock;
pwm->duty = duty;
pwm->pwm_hz = pwmhz;
pwm->counter = clock/request;

pr_debug("pwm->request = %d,duty = %d, pwm->counter = %ld \n",pwm->request,duty,pwm->counter);


pwm->compare = PWM_COMPARE(pwm->counter, duty) ? : 1;
pwm->counter = pwm->counter + 100;
pwm_set_device(pwm);
}


修改项说明,添加程序pwm->counter = pwm->counter + 100;
在显示亮度条中,显示宽度较窄,这时可以调节显示亮度的范围,将程序中截至的点的数值改变。
开始修改pwm->compare的值,修改后发现亮度的到最亮前有一段时间的数值是负数,亮度就不再变化,电流数值不变。
这时,修改pwm->counter数值,将亮度范围变宽,开始调节的时候,将数值放在了pwm->compare = PWM_COMPARE(pwm->counter, duty) ? : 1;赋值前面,发现没有效果,
后来,将修改放在了后面,这样,就不影响pwm->compare的数值变化,也将范围拉宽了,这样在亮度条的显示中就不会提前变暗。
0 0
原创粉丝点击