Tina Ledc 无法驱动超过32个灯
-
哈咯各位大佬
那个ledc的驱动我换了之前论坛里面提供的更新了,刷上去了以后那个调试节点 没有trans_mode 选项root@TinaLinux:/sys/kernel/debug# cd sunxi_leds/ root@TinaLinux:/sys/kernel/debug/sunxi_leds# ls data output_mode t0h_ns t1h_ns wait_data_time_ns wait_time1_ns hwversion reset_ns t0l_ns t1l_ns wait_time0_ns root@TinaLinux:/sys/kernel/debug/sunxi_leds# cat wait_time wait_time0_ns wait_time1_ns root@TinaLinux:/sys/kernel/debug/sunxi_leds# cat wait_time0_ns 84
然后嘛我一共58个灯,这段程序只能点亮32个灯
void ledc_test(int brt) { char cmd[64] = {0}; int brit = 1; brit = brt; for(int i = 0; i < 58; i++) { ledcolor_r[i] = brit; ledcolor_g[i] = brit; ledcolor_b[i] = brit; } for(int led_i = 0; led_i < 58; led_i++) { sprintf(cmd, "echo %d > /sys/class/leds/sunxi_led%dr/brightness", ledcolor_r[led_i], led_i); system(cmd); usleep(100); } }
然后程序和系统就一起死掉了,只能用reset按钮重启
看上去和论坛里面大伙提到的超过32个灯会出问题一样那么
现在两个问题
1 是在tina里面怎么同时驱动超过32个灯
2 是那个echo是改变了单个灯的数据,那么能不能一口气把58个数据都准备好,然后给DMA下指令发送呢,因为如果不这么做,效率低到可怕呀 -
重复帖:D1s ledc驱动代码bug,DMA模式无法使用
Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号