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

2020-01-30 13:34发布

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
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
binaimei2007
1楼-- · 2020-01-30 18:36
看你这程序真痛苦。水平不够,看不出来,见谅
zysblog
2楼-- · 2020-01-30 22:58
其实,我发现,大多数人,在发表帖子后,就应该知道是否能够有人会帮忙解决。假如懒惰导致问题描述不清晰,不够全面,那别人是无能为力的。
bbssilverkey
3楼-- · 2020-01-31 03:10
 精彩回答 2  元偷偷看……
postek
4楼-- · 2020-01-31 04:51

if(counter==20)
改成
if(counter>=20)
试试吧。我没仔细看程序。扫一眼。。。
wangchin1988
5楼-- · 2020-01-31 05:42
本帖最后由 wangchin1988 于 2013-5-18 18:54 编辑

不明白,k=0时,还能死循环。
编辑原因:看错了
benqme
6楼-- · 2020-01-31 11:23
if counter二20之后要清零呀

一周热门 更多>