www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]我說的是單片機(jī)C,書上的延時(shí)是這樣的,如: void delay02() { unsigned char i,j,k; for(i=2;i>0;i--) for(j=200;j>0;j--) for(k=250;k>0;k--); } 它的時(shí)間是:2usX250X200X2=200 000us=0.5s 而這個(gè)時(shí)間是不精確的,

我說的是單片機(jī)C,書上的延時(shí)是這樣的,如:


 

void delay02()


 

{


 

unsigned char i,j,k;


 

for(i=2;i>0;i--)


 

for(j=200;j>0;j--)


 

for(k=250;k>0;k--);


 

}


 

它的時(shí)間是:2usX250X200X2=200 000us=0.5s


 

而這個(gè)時(shí)間是不精確的,我在家里總結(jié)出了一個(gè)對于這種時(shí)間計(jì)算法,它的結(jié)果和在KEILL中調(diào)試時(shí)的時(shí)間是一樣的并且也分開始定義時(shí)的類型,char是以1us計(jì)算,int 是4us,如果上面的那里定義成int那結(jié)果就并不是0.5S啦!


 

分析法為:


 

以unsigned char 來說吧!


 

for(i=2;i>0;i--)


 

分析:i=2 --->我的分析為1us


 

i>0 ---->我的分析為1us 有兩次共2us


 

i-- ----->它也有1us 有兩次共2us


 

因此,總的時(shí)間為 s=1+1X2+1X2=5us


 

由此,書上的時(shí)間應(yīng)為


 

1+1x2+1x2+2x(1+1x200+1x200+200x(1+1x250+1x250))


 

這個(gè)時(shí)間顯然就是以上從 for 開始到結(jié)束的 } 的精確時(shí)間了!


 

又如:unsigned char i;


 

i=20; //2us


 

while(i--);


 

這個(gè)時(shí)間精確計(jì)算應(yīng)為 s=2+6+20x6 us


 

為什么是這樣呢?這是我通過keill的調(diào)試得出來的!


 

while ---> 2us


 

(i--) ----->2us


 

; --------->2us


 

起步為6us共有20次,那么時(shí)間為6+20x6


 

還有,如:


 

unsigned int a;


 

for(a=20;a>0;a--);


 

這個(gè)時(shí)間精確為


 

2+20x4+20x4


 

好了不多說了,己經(jīng)到了0:28啦,我要睡啦,不然明兒沒精神的。睡去啦!


 

嘻嘻!這些就是我發(fā)現(xiàn)的單片機(jī)關(guān)于延時(shí)的那點(diǎn)事兒哦!


 

如果你不想信,那么,請朋友你去用keil的調(diào)試吧!


 

用起步的時(shí)間減去最后的時(shí)間看看是不是這樣啦!


 

sec是時(shí)間 0.000 000 00


 

還有這個(gè)說法在keil4上不是怎樣成立?這個(gè)可能是編譯器的區(qū)別。不過這個(gè)可是理解成一種編程思想吧!不要讓編譯器所約束(因?yàn)榫幾g器也是用程序設(shè)計(jì)出來的,如果你會(huì)那個(gè)你也可以編出來) 看完全文了嗎?喜歡就一起來點(diǎn)個(gè) 吧!

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
關(guān)閉
關(guān)閉