|
本帖最后由 @allen 于 2014-9-2 10:02 编辑
更多的基于cubieboard 的学习贴可搜:嵌入式学习
1. cubieboard 板载led 了解与使用
以CT为例,可以看到- blue:ph21:led1/ green:ph07:led4/ orange:ph20:led2/ white:ph11:led3/
复制代码 以绿灯为例在/sys/class/leds/green\:ph07\:led4/ 有:- brightness device max_brightness power subsystem trigger uevent
复制代码- root@cubietruck:~# cat /sys/class/leds/green\:ph07\:led4/trigger
- none rfkill0 battery-charging-or-full battery-charging battery-full battery-charging-blink-full-solid ac-online usb-online<font color="Red"> [mmc0]</font> mmc1 timer heartbeat cpu0 cpu1 default-on rfkill1 rfkill2
- root@cubietruck:~#
复制代码 说明它被定义成mmc0 触发,所以当你插TF到CT上面的卡槽的时候,绿灯会闪烁一下,提示你mmc0 触发
蓝灯被定义成heartbeat (指示内核是否已经挂掉),
橙灯被定义成cpu0(双核A20 cpu0负载情况),
白灯被定义成cpu1
这些触发定义,在script.bin- mount /dev/nanda /mnt
- cd /mnt
- bin2fex script.bin script.fex
- vi script.fex
复制代码 搜leds ,可以看到:- [leds_para]
- leds_used = 1 // 总开关
- leds_num = 4 //灯数量
- leds_pin_1 = port:PH21<1><default><default><0> // 连接到那个管脚
- leds_name_1 = "blue:ph21:led1" // 名字,可以自己名个
- leds_default_1 = 0 // 系统起来后,是亮着的还是灭着的
- leds_trigger_1 = "heartbeat" // 触发器
- leds_pin_2 = port:PH20<1><default><default><0>
- leds_name_2 = "orange:ph20:led2"
- leds_default_2 = 0
- leds_trigger_2 = "cpu0"
- leds_pin_3 = port:PH11<1><default><default><0>
- leds_name_3 = "white:ph11:led3"
- leds_default_3 = 0
- leds_trigger_3 = "cpu1"
- leds_pin_4 = port:PH07<1><default><default><0>
- leds_name_4 = "green:ph07:led4"
- leds_default_4 = 1
- leds_trigger_4 = "mmc0"
复制代码 主要有有用的:
none (去掉触发)
timer (按照自己定义的延时时间闪烁)
battery-charging (电池充电中)
battery-full(电池充电满了)
参考:http://linux-sunxi.org/Fex_Guide “led configuration” 部分
http://blog.csdn.net/yuanlulu/article/details/6438847 文章后面
将led 灯点亮:- echo none > /sys/class/leds/green\:ph07\:led4/trigger
- echo 1 > /sys/class/leds/green\:ph07\:led4/brightness
- echo 0 > /sys/class/leds/green\:ph07\:led4/brightness
复制代码 不过,此方法重启trigger就变为script.bin 定义的,所以最好改script.bin的trigger
经典led 应用:
接个锂电池供电的时候,用led提示电量情况
电池指示灯:
>放电时,电量为0的时候等全灭,
> 1-25亮蓝灯,26-50亮蓝橙灯,51-75蓝橙白灯,76-100四灯全亮。
> 充电时,0-25一盏闪烁、26-50一亮一闪烁、51-75两亮一闪烁、
> 76-99三亮一闪烁、100 充满全亮
> 当pmu检测不到电池时,电池指示灯全部处于闪烁状态- vi battrey_leds.sh
- chmod +x battrey_leds.sh
- cp battrey_leds.sh /usr/bin/
复制代码- vi /etc/udev/rules.d/10-bat-leds.rules
- SUBSYSTEM=="power_supply", RUN+="/usr/bin/battrey_leds.sh"
复制代码 AXP209 检查到电量变化,就会上报power_supply事件,调用/usr/bin/battrey_leds.sh
|
|