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
|