简简单单的一个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条回答
ntmusic
2019-07-17 04:23
先不要沉,我想说一下我个人看法。我观察过过很多人写程序,对于从引脚获取串行数据的写法中,不知道从哪里来的习惯,会用ACC寄存器去获取。先不说这么用会给程序带来隐患,就从编程的角度出发,既然使用了C语言,能脱离硬件底层的写法就尽量避免不要用底层寄存器,一方面程序方便移植,另一方面也不会与编译器编译产生冲突。有人还说使用ACC提高处理器效率,我只想说,你应该先去试试,不要人云亦云。

一周热门 更多>