1、唯有Sleep函數(shù),只有Sleep函數(shù)參數(shù)是用毫秒,比如1000毫秒等于1秒。
創(chuàng)新互聯(lián)長(zhǎng)期為千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為平塘企業(yè)提供專業(yè)的網(wǎng)站設(shè)計(jì)、做網(wǎng)站,平塘網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
2、延遲函數(shù),一般建議調(diào)用系統(tǒng)函數(shù)。不建議循環(huán)。特別是多任務(wù)操作系統(tǒng),循環(huán)會(huì)消耗系統(tǒng)資源。如果是Dos,indows,linux系統(tǒng)建立調(diào)用 Sleep()函數(shù)。其他系統(tǒng),請(qǐng)自行查找。
3、C語(yǔ)言的延遲函數(shù)一般是利用無(wú)意義程序運(yùn)行來(lái)控制時(shí)間從而達(dá)到延時(shí)的目的 舉個(gè)例子:for(i=0;ix;i++)for(j=0;j120;j++);這是延時(shí)x毫秒的for循環(huán)語(yǔ)句。值得注意的是記得最后的;一定得記得寫。
4、找到延時(shí)1毫秒的值,把Delay函數(shù)改名為Delay1ms,之后調(diào)用這個(gè)函數(shù)完成精確延時(shí) -其他的延時(shí)函數(shù)也可以類似上述方法完成,但記住在調(diào)試和實(shí)際使用時(shí)要用同樣的CPU主頻。
5、即空指令的話,機(jī)器就會(huì)延時(shí),然后你在計(jì)算好每次延時(shí)到底有多長(zhǎng),外面套一個(gè)循環(huán)(或者多重循環(huán)),根據(jù)你想要的延時(shí)時(shí)間即可計(jì)算出來(lái)循環(huán)的次數(shù),延時(shí)函數(shù)基本上都是這種原理,它的參數(shù)就是用來(lái)控制循環(huán)次數(shù)的。
C程序中可使用不同類型的變量來(lái)進(jìn)行延時(shí)設(shè)計(jì)。經(jīng)實(shí)驗(yàn)測(cè)試,使用unsigned char類型具有比unsigned int更優(yōu)化的代碼,在使用時(shí)應(yīng)該使用unsigned char作為延時(shí)變量。
c語(yǔ)言定義延時(shí)函數(shù)主要通過(guò)無(wú)意義指令的執(zhí)行來(lái)達(dá)到延時(shí)的目的。下面給出一個(gè)經(jīng)典的延時(shí)函數(shù)。
可以有很多辦法,一是調(diào)整參數(shù),使其延時(shí)5分鐘或6分鐘,循環(huán)24次或20次。二是將延時(shí)函數(shù)的形參改為長(zhǎng)整型(32位)延時(shí)時(shí)間擴(kuò)大65536倍。
然后你會(huì)在左邊register欄會(huì)看見(jiàn)一個(gè) sec:0.00014182 這個(gè)就是軟件運(yùn)行到斷點(diǎn)處所用時(shí)間,然后再運(yùn)行一次(這次就是運(yùn)行完延時(shí)函數(shù)所用時(shí)間)。你把兩次的時(shí)間做差值就是延時(shí)函數(shù)延時(shí)時(shí)間。再附圖兩張。
這得看你的CPU運(yùn)行一條指令得多久,像單片機(jī)89C51一般一條1us。C語(yǔ)言是一門通用計(jì)算機(jī)編程語(yǔ)言,應(yīng)用廣泛。
首先你要延時(shí)多長(zhǎng)時(shí)間,us級(jí)別的必須使用匯編,C誤差很大,10-100us級(jí)別的可以用C控制,單必須考慮C出棧入棧時(shí)間。ms以上的用時(shí)間除以機(jī)器周期(除以你則個(gè)1us是不行的,誤差大)。
這個(gè)跟的系統(tǒng)頻率有關(guān)系??纯茨愕木д袷嵌嗌?。另外還跟指令集有關(guān)系。精確的時(shí)間你可以反匯編一下看看有多少條指令,根據(jù)指令周期算算延時(shí)時(shí)間。
.比如前面那個(gè)箭頭指到你的調(diào)用函數(shù)delay(200);假設(shè)執(zhí)行到此部用時(shí)1110。
就是用晶振頻率算cpu指令周期,再算Delay循環(huán)中有幾條代碼,需要多少個(gè)指令周期。除一下可以算個(gè)大概。具體你可以結(jié)合硬件資料來(lái)算。