标题: 帮忙看下用九齐IC使LED闪烁两次后关闭为何失效 [打印本页]

作者: 1481509156    时间: 2024-10-6 09:02
标题: 帮忙看下用九齐IC使LED闪烁两次后关闭为何失效
使用以下代码,LED一直闪烁,没有闪烁两次停止
void main(void)
{
    while(1)
    {
        if(on_power==0)  /标志位,初始值位0
            {
                LED_POWER();
                on_power=1;
            }    }
}
void LED_POWER(void)
{
    LED1=0;LED2=0;  //点亮LED
    Delay(1000);
    LED1=1;LED2=1;   //关闭LED
    Delay(1000);
    LED1=0;LED2=0;
    Delay(1000);
    LED1=1;LED2=1;
    Delay(1000);
}

作者: jinyudz    时间: 2024-10-6 11:04
程序一直在循环执行,所以一直闪烁。做个for语句,LED一亮一灭,为一个循环,两个循环停止运行即可。
作者: lkc8210    时间: 2024-10-6 11:54
代码逻辑正确,请检查on_power有没有其他地方清零了
作者: 1481509156    时间: 2024-10-6 13:49
jinyudz 发表于 2024-10-6 11:04
程序一直在循环执行,所以一直闪烁。做个for语句,LED一亮一灭,为一个循环,两个循环停止运行即可。

这个我试过,没起效果哦
for(i=0;i<2;i++)
{
    LED1=0;LED2=0;  //点亮LED
    Delay(1000);
    LED1=1;LED2=1;   //关闭LED
    Delay(1000);
}
作者: 1481509156    时间: 2024-10-6 13:54
lkc8210 发表于 2024-10-6 11:54
代码逻辑正确,请检查on_power有没有其他地方清零了

谢谢!这个没有其他地方清零的,后面我用定时器试了一下,是可以闪烁两次关闭的
作者: xiexugang    时间: 2024-10-7 18:12
闪灯程序,不能放在主循环里面,应该放在主循环之前,先闪两次灯,然后while(1){}.另外注意:要关闭了看门狗,如果开了看门狗,就要在延时程序中不停的清看门狗,在最后的主循环(或是叫死循环中不停的清看门狗)




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1