void DelayMS(uint x){uchar t;while(x--) for(t=0;t<120;t++);}DelayMS(300);
3 回答

隔江千里
TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超10個(gè)贊
DelayMS(300)表示希望系統(tǒng)delay 300毫秒,系統(tǒng)有自己的RTC,根據(jù)硬件的晶振(Hz)可以計(jì)算出一次振蕩大約多少耗時(shí),這樣就能大約算出1ms需要多少次振蕩;
簡單比喻一次振蕩需要1us,那1ms就是1000次振蕩,300ms就是300x1000次振蕩,這樣就能大概的計(jì)算出300ms delay;
這得看你的CPU運(yùn)行一條指令得多久,像單片機(jī)89C51一般一條1us。

楊__羊羊
TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊
可以調(diào)用庫函數(shù)來獲取前后時(shí)間差,計(jì)算出具體的延遲時(shí)間。如果這個(gè)是在嵌入式驅(qū)動(dòng)里面的,可大概地按照CPU頻率及循環(huán)次數(shù)來大概估算延遲,但這個(gè)延遲不太精確。
- 3 回答
- 0 關(guān)注
- 174 瀏覽
添加回答
舉報(bào)
0/150
提交
取消