找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 712|回复: 5
收起左侧

帮忙看下用九齐IC使LED闪烁两次后关闭为何失效

[复制链接]
ID:1125252 发表于 2024-10-6 09:02 | 显示全部楼层 |阅读模式
使用以下代码,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);
}
回复

使用道具 举报

ID:291549 发表于 2024-10-6 11:04 | 显示全部楼层
程序一直在循环执行,所以一直闪烁。做个for语句,LED一亮一灭,为一个循环,两个循环停止运行即可。
回复

使用道具 举报

ID:161164 发表于 2024-10-6 11:54 | 显示全部楼层
代码逻辑正确,请检查on_power有没有其他地方清零了
回复

使用道具 举报

ID:1125252 发表于 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);
}
回复

使用道具 举报

ID:1125252 发表于 2024-10-6 13:54 | 显示全部楼层
lkc8210 发表于 2024-10-6 11:54
代码逻辑正确,请检查on_power有没有其他地方清零了

谢谢!这个没有其他地方清零的,后面我用定时器试了一下,是可以闪烁两次关闭的
回复

使用道具 举报

ID:69115 发表于 2024-10-7 18:12 | 显示全部楼层
闪灯程序,不能放在主循环里面,应该放在主循环之前,先闪两次灯,然后while(1){}.另外注意:要关闭了看门狗,如果开了看门狗,就要在延时程序中不停的清看门狗,在最后的主循环(或是叫死循环中不停的清看门狗)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表