[i.MX] imx6 gpio触发pwm背光程序

[复制链接]
4146|15
 楼主| Saintxpaul 发表于 2016-1-20 10:49 | 显示全部楼层 |阅读模式
在imx6里默认的pwm背光程序读写参数是通过sys/目录下用echo、cat修改brightness等参数来实现的。这时候会触发pwm-bl.c里的pwm_backlight_update_status函数使参数可以被修改并使能pwm接口。但这种情况必须从外部先改变brightness才可以触发pwm_backlight_update_status函数。如果我想通过GPIO来修改背光的亮度,比如从外部给某个GPIO引脚导通后,给brightness赋值100,可以实现吗?用什么方式比较好呢?在内核里做还是在用户程序做呢?
kris_fei 发表于 2016-1-20 15:16 | 显示全部楼层
gpio只能控制开关,不能控制亮度。
 楼主| Saintxpaul 发表于 2016-1-20 15:28 | 显示全部楼层
kris_fei 发表于 2016-1-20 15:16
gpio只能控制开关,不能控制亮度。

是的 我是想通过采集GPIO的信号作为条件 然后自己来给brightness赋值的
kris_fei 发表于 2016-1-20 15:32 | 显示全部楼层
为何要这么做呢,直接控制pwm就可以了
 楼主| Saintxpaul 发表于 2016-1-20 15:33 | 显示全部楼层
kris_fei 发表于 2016-1-20 15:32
为何要这么做呢,直接控制pwm就可以了

给您留言了 方便的话在消息里说一下?
 楼主| Saintxpaul 发表于 2016-1-20 15:47 | 显示全部楼层
kris_fei 发表于 2016-1-20 15:32
为何要这么做呢,直接控制pwm就可以了

我在外部接了一个按钮来触发一个GPIO引脚 在程序里可以用get函数读取到io的状态 因为假如在没有电脑无法终端操作的时候就不能用echo指令来给brightness赋值 所以我想通过根据GPIO的状态 来自己给brightness赋值
kris_fei 发表于 2016-1-20 16:42 | 显示全部楼层
Saintxpaul 发表于 2016-1-20 15:47
我在外部接了一个按钮来触发一个GPIO引脚 在程序里可以用get函数读取到io的状态 因为假如在没有电脑无法 ...

你的意思是根据gpio状态从而通过pwm改变背光对吧?
这样肯定可以的。
不过你这样做的意义在哪呢?
wangjiahao88 发表于 2016-1-20 16:59 | 显示全部楼层
gpio只能控制开关

不过用PWM的占空比可以控制亮度的。
jianjun21st 发表于 2016-1-20 22:18 来自手机 | 显示全部楼层
不知道这个方法可行不:写个简单的字符设备驱动,在驱动里将gpio口设置为外部中断,同时注册该外部中断的处理函数,在处理函数里调制pwm的占空比。这样,不需要外部应用程序的支持。i
Tennasi 发表于 2016-1-21 08:25 | 显示全部楼层
你是不是想根据GPIO端口的状态改变PWM啊?
mini1986 发表于 2016-1-21 08:54 | 显示全部楼层
可以通过检测gpio被按下的时间长短来控制pwm......
zhy808zhy 发表于 2016-1-21 10:19 | 显示全部楼层
好东西,值得学习
E-Kaia 发表于 2016-1-21 20:33 | 显示全部楼层
GPIO都能实现不同的内容,按下,抬起,按下长短,根据这个分别设置PWM的占空比频率等
justinlin2015 发表于 2016-1-26 15:49 | 显示全部楼层

长见识了
 楼主| Saintxpaul 发表于 2016-2-18 19:12 | 显示全部楼层
最后通过输入子系统的方式,通过读取dev下的event0,可以采集到当前按钮的状态,事件号,也就是code,type,value这几个参数。通过open,read读取event0,然后根据所需要的事件号和状态,再去把想要写的值写入brightness。类似地也是使用open,write等指令。
free_tend 发表于 2016-2-19 17:20 | 显示全部楼层
不需要这么麻烦啊, 直接用脚本 检测gpio的状态, 到了某个状态直接echo 就行.
当然你的脚本循环里面注意使用延时, 不然cpu占用率有点高
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

27

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部