標(biāo)題: 關(guān)于單片機(jī)延時(shí)函數(shù)的時(shí)間計(jì)算 [打印本頁(yè)]

作者: xiaokevn    時(shí)間: 2017-7-11 09:33
標(biāo)題: 關(guān)于單片機(jī)延時(shí)函數(shù)的時(shí)間計(jì)算
單片機(jī)一個(gè)延時(shí)函數(shù)延時(shí)多長(zhǎng)時(shí)間到底怎么算?由于學(xué)校直接說(shuō)的c語(yǔ)言,看網(wǎng)上說(shuō)c只有仿真來(lái)看延時(shí)是多少,只有這種方法嗎?比如
for(i=0;i<125;i++)
{
;
}
這樣一個(gè)延時(shí)了多長(zhǎng)時(shí)間呢?有沒(méi)有具體算的方法。。麻煩大家詳細(xì)說(shuō)下吧,謝謝。

作者: 小潘哥    時(shí)間: 2017-7-11 20:49
使用STC最新的程序下載軟件,右邊有個(gè)軟件延時(shí)計(jì)算,用那個(gè)生成要的延時(shí)函數(shù),就挺不錯(cuò)的
作者: L_sen    時(shí)間: 2017-7-11 21:52
void DelayMS(uint x) { uchar i; while(x--) { for(i=0;i<120;i++) }      如:DelayMS(5);則耗時(shí)為5*120個(gè)指令周期,如果你的指令周期就是你的系統(tǒng)時(shí)鐘(12000000hz)那么時(shí)間為1/12000000*5*120  這只能是大概的算。不過(guò)應(yīng)該能滿足你的延時(shí)要求了。精準(zhǔn)的話建議用匯編
作者: 不倒翁.WZT    時(shí)間: 2017-7-12 05:59
標(biāo)題: RE: 關(guān)于單片機(jī)延時(shí)函數(shù)的時(shí)間計(jì)算
如果晶振是24Mhz,延時(shí)大約是125*2=250us.(用仿真器仿真是251us).
如果晶振是12Mhz,延時(shí)大約是125*4=500us(用仿真器仿真是502us).




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1