莫要墨击 发表于 2013-5-18 10:52:13

为什么赋值没有用<单片机>

void onesecond()
{
uint8 counter=0,k=2;
TMOD=0x10;TH1=0xFF;TL1=0xFC;
TCON=0x40;
while(k==2)
{ if(TF1==1){TF1=0;TH1=0xFF;TL1=0xFC;counter++; if(counter==20){k=1;} }
   
} m=2;
}上面是个延迟程序,为什么会陷入死循环?且检测窗口的变量值(counter,k)都是0

binaimei2007 发表于 2013-5-18 11:02:22

看你这程序真痛苦。水平不够,看不出来,见谅

zysblog 发表于 2013-5-18 11:13:22

其实,我发现,大多数人,在发表帖子后,就应该知道是否能够有人会帮忙解决。假如懒惰导致问题描述不清晰,不够全面,那别人是无能为力的。

bbssilverkey 发表于 2013-5-18 15:14:07

小猫头像很可爱,程序很糟糕,是不是无限跳中断了?

postek 发表于 2013-5-18 15:17:58


if(counter==20)
改成
if(counter>=20)
试试吧。我没仔细看程序。扫一眼。。。

wangchin1988 发表于 2013-5-18 15:30:09

本帖最后由 wangchin1988 于 2013-5-18 18:54 编辑

不明白,k=0时,还能死循环。
编辑原因:看错了

benqme 发表于 2013-5-18 16:50:36

if counter二20之后要清零呀
页: [1]
查看完整版本: 为什么赋值没有用<单片机>