我目前正致力于可见光通信项目,需要一些帮助来编程快速闪烁(> 200Hz)LED手电筒。我的设备是一台带有固件B115的HUAWEI CUN-L21,它也是扎根的。
我已经使用Android SDK编写了一个应用程序,可以使用Thread.sleep(delay)
以特定延迟打开和关闭手电筒。问题是,即使我将延迟设置为几毫秒,最大值。我得到的频率是35Hz左右,太低了。
我还尝试通过shell中的定时器触发器快速闪烁。但频率也很低。
所以这是我的问题:还有其他方法让LED以200 Hz的频率闪烁吗?我是否必须修改内核空间中的LED驱动程序?如果是这样,我该怎么做?
答案 0 :(得分:0)
我设法通过shell中的定时器触发器使LED闪烁,延迟时间为1ms,延迟时间= 1 ms。所以理论上频率必须是500赫兹。但不知何故,LED不会眨眼。在下图中,可以看到,在10ms后LED停止闪烁。对我来说,它看起来像某种PWM。
Measurement of the blinking frequency
因此LED能够以delay_on = delay_off = 1ms闪烁。但有没有办法让这款智能手机的LED在这个频率下闪烁更长时间?为什么它会在10ms后停止。是否有某种限制,比内核空间中的LED驱动更深?