先列一下leds trigger的设置流程

echo none > trigger 的流程

led_trigger_set()
  |
  led_stop_software_blink()
    
echo timer > trigger 的流程
led_trigger_set()
  |
  ret = trig->activate(led_cdev);
    |
    timer_trig_activate()
      |
      led_blink_set()
        |
        led_blink_setup()
 
问题出在led_stop_software_blink()这个函数。当trigger设置为none时会调用到这里,这个函数会将delay_on/off都还原成0
void led_stop_software_blink(struct led_classdev *led_cdev)
{
del_timer_sync(&led_cdev->blink_timer);
led_cdev->blink_delay_on = 0;
led_cdev->blink_delay_off = 0;
clear_bit(LED_BLINK_SW, &led_cdev->work_flags);
}

当trigger设置为timer时会调用到这里,此时delay_on跟delay_off都为0,if (!*delay_on && !*delay_off) 判断成立,最终delay_on/off就被重置为1HZ

static void led_blink_setup(struct led_classdev *led_cdev,
unsigned long *delay_on,
unsigned long *delay_off)
{
if (!test_bit(LED_BLINK_ONESHOT, &led_cdev->work_flags) &&
led_cdev->blink_set &&
!led_cdev->blink_set(led_cdev, delay_on, delay_off))
return; /* blink with 1 Hz as default if nothing specified */
if (!*delay_on && !*delay_off)
*delay_on = *delay_off = 500; led_set_software_blink(led_cdev, *delay_on, *delay_off);
}

所以,解决方案就是将led_stop_software_blink()函数中delay_on/off设置为0的代码注释掉。

修改led-core.c 让led的delay_on和delay_off时间不会应为trigger配置改版而重置为1HZ的更多相关文章

  1. 简化MVVM属性设置和修改 - .NET CORE(C#) WPF开发

    微信公众号:Dotnet9,网站:Dotnet9,问题或建议:请网站留言, 如果对您有所帮助:欢迎赞赏. 简化MVVM属性设置和修改 - .NET CORE(C#) WPF开发 阅读导航 常用类属性设 ...

  2. c显示数字的LED(数字转LED)

    实现这么一个函数:传入一个int值,在屏幕输出类似LED显示屏效果的字母拼图,例如: 输入1234567890,输出: 请注意每个字符的固定宽度和高度,两个数字间保留一个空格. 函数名:void LE ...

  3. LED Holiday Light -Picking LED Christmas Lights, 4 Things

    LED Christmas lights are not very cheap, but you should know that LED lights can be used for more th ...

  4. LED Decorative Light Supplier - LED Environmental Decorative Lighting Application

    Creating ambient lighting in the home can bridge the gap between the internal world and the outside ...

  5. LED Decorative Light Supplier - LED Neon Application: 5 Advantages

    In the past 100 years, lighting has gone a long way. LED decorative lighting is now designed to meet ...

  6. LED Decorative Light Manufacturer - LED Neon Rope: 5 Advantages

    In the past 100 years, lighting has come a long way. Nowadays, the decorative LED lighting design ca ...

  7. LED Decorative Light Manufacturer - Led Wall Lamp Performance Characteristics

    LED Decorative Light Manufacturer    introduction: LED wall lamp is a light-emitting diode as a ligh ...

  8. 修改.net core MVC默认端口

    默认端口是5000,更改端口修改launchSettings.json.如图:

  9. 关于修改.net core webapi中null默认返回的状态码。

    在asp .net core webapi中,http请求的响应数据如果是null的话,我们知道状态码会返回204,即NoContent,为什么会出现这种情况呢?   因为在返回响应数据的时候,nul ...

  10. 修改.net core 运行端口

    ASPNETCORE_URLS environment variable is ignored by "dotnet run" dotnet new web set ASPNETC ...

随机推荐

  1. java中如何将Object类型转换为int类型

    如何将Object类型转换为int类型 Object object = null; try { Integer.parseInt(object.toString()); } catch (Number ...

  2. 阿里云免费SSL证书申请全过程(图文详解)

    下面我们来详细说下阿里云的域名是如何注册购买,解析绑定的. 首先,打开阿里云官网 ​万网早就被阿里云收购了,所以是同一家.输入你想购买的域名,我这里是随便输入了"aliyun.com&quo ...

  3. linux开启快捷键,牛逼的狠~

    vim env_show #!/bin/bash echo '-----------A------------- XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ...

  4. Excel 导入解析数据 NPOIExcelHelper

    前端代码 html <link href="~/lib/bootstrap-fileinput/css/fileinput.min.css" media="all& ...

  5. CSP2023 游寄

    CSP2023 游寄 没错,又寄. day -n 停课集训,天天打联测模拟赛,人麻了. day -n 请假回家了,人更麻了. 和姐姐拥抱了. 差点睡过头,天天下大雨,悲. 我妈和亲戚出去了,和哥在家通 ...

  6. CSP2023总结

    CSP2023总结 入门组 比赛开始时,顺序开题. 看完 \(T1\) 后没有立即想出正确解法,有点慌乱,看完 \(T2,T3\) 并思考了一会后过去了大概 \(20\) 分钟,想到了解法便看 \(T ...

  7. Blocked aria-hidden on an element because its descendant retained focus.

    背景 vue 2.6.10 报错:Blocked aria-hidden on an element because its descendant retained focus. The focus ...

  8. 我和JVM初次约会

    前言:该篇是参考结合<高手深度解析:JVM是什么>,自己剔除添加了一些内容整理的而来,这里感谢<高手深度解析:JVM是什么>的文章的指点讲解. JVM的生命周期 "J ...

  9. 可爱的 Python: 创建声明性迷你语言

    编程为断言而不是指令 Python 的面向对象和透明自省功能使您可以轻松地创建用于编程任务的声明性迷你语言.在本专栏文章中,David 并未仔细研究如何使用 Python 来解释或翻译其它的专门语言( ...

  10. mongodb之进阶

    常用命令: 1.查看数据库空间大小 db.stats(); 默认是bytes单位 { "db" : "xxx", //当前数据库 "collectio ...