while (--k)什么时候结束?
哪位高手知道:int k = -1;
while (--k);
这个循环什么时候结束? 直接结束吧 suncat0504 说的非常正确,看看 stc-isp-v6.92G.exe 给出的软件延时函数,犯了非常低级的错误,到了这个版本还没有改正,大家看看这个函数能延时 20ms 吗?
void Delay20ms(void) //@11.0592MHz
{
unsigned char data i, j;
i = 216;
j = 37;
do
{
while (--j);
} while (--i);
}
liuyang21168 发表于 2023-11-23 22:35
suncat0504 说的非常正确,看看 stc-isp-v6.92G.exe 给出的软件延时函数,犯了非常低级的错误,到了这个版 ...
int 型的-1 在内存以补码形式存储 是0xffff
当它减到0循环就结束了
---------------------------------------------------------------
ISP 的延时函数没问题。
应该是你的理解存在有误的地方
学习中 明白了,也就是说,第一次让 while(--j)循环37次,以后让 while(--j)循环255次。 数据为正执行,为负退出 根本一次循环都进不去,即使int k=1都进不去循环 liuyang21168 发表于 2023-11-23 22:35
suncat0504 说的非常正确,看看 stc-isp-v6.92G.exe 给出的软件延时函数,犯了非常低级的错误,到了这个版 ...
大约2.9ms吧 gentleman 发表于 2023-11-24 08:33
int 型的-1 在内存以补码形式存储 是0xffff
当它减到0循环就结束了
--------------------------- ...
{:4_250:}
页:
[1]
2