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 關注
- 110 瀏覽
添加回答
舉報
0/150
提交
取消