标题:
奇怪C语言程序问题,条件不成立了为什么老在循环,那出错了?
[打印本页]
作者:
鬼推磨
时间:
2022-6-13 12:43
标题:
奇怪C语言程序问题,条件不成立了为什么老在循环,那出错了?
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:39
先把下面的给屏蔽了,只保留你要测试的,一点一点测试
作者:
dreaman
时间:
2022-6-13 14:44
是不是因为z没有初始化
另外两个if语句是不是得上下颠倒一下
小白瞎说的
作者:
wulin
时间:
2022-6-13 14:44
要有按键松手检测
void main()
{
KEY1=1;
while(1)
{
if(z==15)
{
z=0;
KEY1=0;
delayms(300);//300毫秒延时
KEY1=1;
// delay1s(1);//1秒延时
}
if(KEY2==0)
{
delayms(10);
if(KEY2==0)
{
z++;
// delayms(100);
while(!KEY2);
}
}
}
}
作者:
glinfei
时间:
2022-6-13 15:17
程序不全,单纯这些,不应该出现你说反复亮灯的问题。
作者:
1956195761
时间:
2022-6-13 15:21
没有初始化
作者:
鬼推磨
时间:
2022-6-13 16:46
wulin 发表于 2022-6-13 14:44
要有按键松手检测
void main()
{
你这可以。解决了我的问题。谢谢
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1