简简单单的一个delay函数,也出现了意想不到的问题,求助

2019-07-15 19:20发布

RT,在写一个关于I2C的函数,出现问题了,而问题不在别的上,而在delay上,让我百思不得其解。
void delay() //延时
{
char x;
for(x=0;x<10;x++);
}
用以上的程序,运行出现问题,但当我改成for函数改成

for(x=1;x<11;x++);
问题就没了,这是怎么回事啊

另外之前也遇到过在别的程序中
for(i=0;i<8;i++);
不行,改成
for(i=1;i<9;i++);
或者倒过来都可以


如果是函数初始化的话我试过全部不初始化,也试过全部初始化都不行
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
13条回答
olive2003
2019-07-16 12:16
本帖最后由 olive2003 于 2014-6-24 22:05 编辑
ying-teng 发表于 2014-6-24 06:29
你是不是在程序里,用到CY位了

CY位么,确实用到了ACC和左移了
        ACC=ACC<<1;
        ACC0=SDA;

这个对delay有什么影响么?
————————————————————————————————————
刚才试了下放弃使用ACC的方法读取数据,发现delay函数怎么改都没问题了。膜拜大神,请教原因。

一周热门 更多>