标题:
用keil调试在delay处停止
[打印本页]
作者:
racola
时间:
2016-1-10 17:43
标题:
用keil调试在delay处停止
刚接触单片机,师傅们帮看一下下面的小程序在keil调试时停在delay位置就不动了,不知道是什么原因?
编译创建目标文件也没有问题,下载进去就是实现不了循环移位,搞不清楚怎么回事?请师傅多指点一下!
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
void delay2(uint z)
{
uint x,y;
for(x=100;x>0;x++)
for(y=z;y>0;y++);
}
void main()
{
uchar temp;
temp=0xfe;
P1=temp;
while(1)
{
temp=_crol_(temp,1);
delay2(600); //keil调试停在这里就不动了
P1=temp;
}
}
作者:
王朗的诱惑
时间:
2016-1-10 18:57
x++和y++改成x--和y--试试。
作者:
Antecer
时间:
2016-1-10 19:17
根据这个程序,你的delay2延迟为:(65535-600)*3*(65535-100)*3= 4249021725 us 约等于38241s,你这程序必须卡在delay2这里啊
作者:
tanjinhua520
时间:
2016-1-10 23:51
Y++ X++改成Y-- X--已经是会导致程序溢出
作者:
深藏在云端
时间:
2016-12-22 12:23
要实现什么功能?
作者:
aybco
时间:
2016-12-22 12:59
好好理解哈for语句,再看看你的逻辑是不是正确,for错了。
作者:
zl2168
时间:
2016-12-22 15:17
本帖最后由 zl2168 于 2016-12-22 15:20 编辑
for(x=100;x>0;x++) for(y=z;y>0;y++);改为for(x=100;x>0;x--)for(y=z;y>0;y--);
或改为for(x=0;x<100;x++) for(y=0;y<z;y++);
作者:
liuzhaoxin1020
时间:
2016-12-25 18:58
for语句有错误
作者:
myowl
时间:
2016-12-26 17:09
在这里for(x=100;x>0;x++)已经是死循环了
作者:
cgp0550525010
时间:
2016-12-26 17:30
程序运行到这里遇堵了才不往下运行了
作者:
13120735872
时间:
2016-12-28 20:52
第二个for错了,死循环,y大于0一直是成立的!
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1