void DelayMS(uint x){uchar t; while(x--)//?{for(t=120;t>0;t--); }}
2 回答
弑天下
TA贡献1818条经验 获得超8个赞
估计你的振荡器(或晶振)的频率为 每120个周期1ms,所以内层循环
for(t=120;t>0;t--);
相当于 1ms
然后外层循环 while(x--){ ... } 控制内层循环执行 x 次,所以达到的效果就是 delay x ms
至于while(x--){ ... },这个 x 是本地变量(局部变量,形参,堆栈上的变量),它的初始值是你在调用该函数时实参拷贝给它的
慕尼黑8549860
TA贡献1818条经验 获得超11个赞
x是调用者传递过来的参数,用于决定延时的大小。在这个程序中,通过while循环和for循环的嵌套实现空转来完成延时。x--就是给x的值减1.每次循环减1,直到x=0结束循环,也就是终止延时。
- 2 回答
- 0 关注
- 83 浏览
添加回答
举报
0/150
提交
取消