奇怪问题,条件不成立了为什么老在循环,那出错了?-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 467|回复: 2

[未解决] 奇怪问题,条件不成立了为什么老在循环,那出错了?

[复制链接]
发表于 2022-6-13 13:13 | 显示全部楼层 |阅读模式
奇怪问题,条件不成立了为什么老在循环,那出错了?
KEY1是个指示灯
KEY2是个按钮开关
每扫描按钮开关按15下后,指示灯闪一下,
但下面代码下载单片机测试,按了几下按钮后,也加了延时消抖,没有按到15下,
指示灯就一直交替闪,它不跳出了,不往下面代码走了。
z=0;都清零了。运行一次。就不会再满足z==15这个条件了,
就不会在第一个IF语句里循环了。不知道为什么、。太奇怪了


void main()
{      
        KEY1=1;
        while(1)
        {
               
//////////老在这段循环///////////////
if(z==15)      
{
KEY1=0;
delayms(300);300毫秒延时
KEY1=1;
delay1s(1);//1秒延时
z=0;
}
////////////////////////////////

if(KEY2==0)
        {
        delayms(10);
        if(KEY2==0)
    {
z++;
delayms(100);                                                                 
}
}
}
}
 楼主| 发表于 2022-6-13 14:14 | 显示全部楼层
void main()
{
unsigned char z = 0;
KEY1=1;
while(1)
{
if( KEY2 == 0 )
{
while( !KEY2 );
z++;
}
if( z == 15 )
{
KEY1=0;
delayms(50);
KEY1=1;
delay1s(1);
z=0;
}
}
}
这个代码可以满足我的要求
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-1 01:04 , Processed in 0.071734 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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