日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

c語(yǔ)言延時(shí)函數(shù)詳解

 美達(dá)說(shuō) 2017-12-14
?5樓 tianshuihu
2014-4-29 18:19:19
樓主想問(wèn)Delay函數(shù)實(shí)現(xiàn)的延時(shí)是怎樣計(jì)算的是嗎,看程序應(yīng)該是51單片機(jī)的延時(shí)程序

以10ms延時(shí)子程序(12MHz)為例來(lái)分析一下(其它的類似)
void delay10ms(void)
{
unsigned char i,j,k;
for(i=5;i>0;i--)
for(j=4;j>0;j--)
for(k=248;k>0;k--);
}

這個(gè)程序有三層循環(huán),循環(huán)的總次數(shù)為
Num=5*4*248=4960
每次循環(huán)都有一次條件判斷(如“k>0”)和一次只減(如“k--”),即每次循環(huán)消耗兩個(gè)機(jī)器周期
那么花費(fèi)的總的機(jī)器周期即為
Sum=Num*2=9920
對(duì)于51單片機(jī)12M晶振的話一個(gè)周期是1us,那么延時(shí)時(shí)間
t=Sum*1us=9 920 us ≈ 10ms

這段程序有可能是精確延時(shí)到10ms,這是因?yàn)檎{(diào)用這個(gè)函數(shù)及執(zhí)行完這個(gè)函數(shù)分別要壓棧和出棧,另外i,j,k也有一個(gè)賦初值的過(guò)程...所以各種因素疊加到一起延時(shí)就是10ms了

其實(shí)樓上說(shuō)的挺好的,如果你想看具體的延時(shí)過(guò)程可以仿真一下,在keil中對(duì)比C語(yǔ)言匯編前后的代碼你會(huì)理解的更透徹

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多