打印
[技术相关]

运行指示灯复用故障显示

[复制链接]
799|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
观海|  楼主 | 2023-8-23 14:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.工作原理
嵌入式产品一般设计的都有运行指示灯,一方面是为了让使用者看到产品运行状态,另一方面如果产品发生了故障,可以直观的通过运行指示灯观察到。本文介绍的方法,产品正常运行时运行指示灯亮灭周期是2000ms(亮1000ms灭1000ms),发生故障时,持续闪烁故障码次数(如果闪烁次数>=故障码,则下个循环周期重新闪烁),比如故障码(1 2 3 4 5 6 7 8 9 10等)。SysTimer.Ledtimer在1ms系统滴答定时器中断服务函数中自增。

2.实例代码
void LED_Test_Event(u8 troublecode )
{
    if(troublecode)
    {
        static u8 led_flash_cnt=0;
        if(led_flash_cnt>=troublecode)
        {
            if(SysTimer.Ledtimer>=1500)
            {
                SysTimer.Ledtimer=0;
                led_flash_cnt=0;
            }
        }
        else
        {
            if(LED_Sta_Read())
            {
                if(SysTimer.Ledtimer>=30)//亮
                {
                    SysTimer.Ledtimer=0;
                    Led_Off();
                    led_flash_cnt++;
                }
            }
            else
            {
                if(SysTimer.Ledtimer>=300)//灭
                {
                    SysTimer.Ledtimer=0;
                    Led_On();
                }
            }

        }
    }
    else
    {
        if(SysTimer.Ledtimer>=1000)
        {
            SysTimer.Ledtimer=0;
            Led_Reverse();
        }
    }
}

————————————————
版权声明:本文为CSDN博主「weixin_39033114」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_39033114/article/details/132185871

使用特权

评论回复

相关帖子

沙发
kangzj| | 2023-8-27 13:36 | 只看该作者
可以直观的通过运行指示灯观察

使用特权

评论回复
板凳
tpgf| | 2023-9-8 13:10 | 只看该作者
这段代码里边好像跟故障码没有关联吧

使用特权

评论回复
地板
xiaoqizi| | 2023-9-8 13:26 | 只看该作者
这个判定的条件有点多啊

使用特权

评论回复
5
木木guainv| | 2023-9-8 13:51 | 只看该作者
在哪里调用这个函数比较合适呢

使用特权

评论回复
6
晓伍| | 2023-9-8 14:16 | 只看该作者
倒是不如通过闪烁频率的更改来进行区别

使用特权

评论回复
7
八层楼| | 2023-9-8 15:06 | 只看该作者
在函数里边操作会不会影响到闪烁的频率啊

使用特权

评论回复
8
磨砂| | 2023-9-8 18:20 | 只看该作者
这个错误码应该如何进行定义呢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

99

主题

4103

帖子

1

粉丝