导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页

    Tina Ledc 无法驱动超过32个灯

    MR Series
    2
    2
    1073
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • L
      leomini5 LV 6 最后由 编辑

      哈咯各位大佬
      那个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下指令发送呢,因为如果不这么做,效率低到可怕呀

      1 条回复 最后回复 回复 引用 分享 0
      • A
        awwwwa LV 8 最后由 编辑

        重复帖:D1s ledc驱动代码bug,DMA模式无法使用

        https://bbs.aw-ol.com/topic/5071/share/1

        1 条回复 最后回复 回复 引用 分享 0
        • 1 / 1
        • First post
          Last post

        Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

        行为准则 | 用户协议 | 隐私权政策