程序会在while里面跳不出来

2019-08-06 21:16发布

void MOV_char(uchar Direction,uchar Place)
{
   while(Place>=0)
     {
   WRITE_CMD(Direction);
   delay(520);
   Place--;
   }
}

//============================

while(sansuo>=0)
      {
    WRITE_CMD(0x0b);
    delay(1000);
    WRITE_CMD(0x0f);
    delay(1000);
    sansuo--;
    }


//============================

while(1)
      {
    MOV_char(0x18,32);
       delay(10);
    WRITE_CMD(0x02);
    delay(520);
   }

//=============================

以上三个while函数,第三个可以正常执行,但是第一第二个如果我把子while后面括号内的内容改成Place>0和sansuo>0  ,就是把原来的>=改成>  程序就可以执行了。不然的话程序就会在while里面跳不出来。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
jiahy
1楼-- · 2019-08-07 02:21
 精彩回答 2  元偷偷看……
lizye
2楼-- · 2019-08-07 05:35
我也是这么想的,搞不懂。。。
shimx
3楼-- · 2019-08-07 08:48
palce >=0,

请举例说明,PLACE的值 是多少时,他才<0 ?

显然,PALCE最小值是0(0-1=255而不是-1),因此,PALCE>=0恒成立。
liliang9554
4楼-- · 2019-08-07 10:40
是啊,所以循环无止尽
zhanghqi
5楼-- · 2019-08-07 11:43
可以尝试在微机上运行,把PLACE定义为有符号。程序也许可以正常运行
jlyuan
6楼-- · 2019-08-07 17:20
 精彩回答 2  元偷偷看……

一周热门 更多>