1、這種代碼跟編譯器和具體的芯片綁定的,可移植性很差的。stc的芯片有個程序可以自動生成類似的代碼,其他芯片不太熟悉。
創(chuàng)新互聯(lián)建站是一家專注于網(wǎng)站建設、成都網(wǎng)站建設與策劃設計,本溪網(wǎng)站建設哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設十年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:本溪等地區(qū)。本溪做網(wǎng)站價格咨詢:028-86922220
2、delay函數(shù)是一般自己定義的一個延時函數(shù)。C語言定義延時函數(shù)主要通過無意義指令的執(zhí)行來達到延時的目的。
3、conrtalcar(2)后面的分號是中文格式的吧。不對,我讀不懂了。你這整一個是都在Delay函數(shù)里的嗎?是這樣的話,就好像是死循環(huán)了。
說明:延時msec*4毫秒所以,delay的延遲時間是和你的cpu時鐘周期相關的。
函數(shù)difftime();是double類型,用來計算運行的時間,用第一個參數(shù)的時間減去第二個參數(shù)的時間,得到的值就是運行用了多少時間。
就是用晶振頻率算cpu指令周期,再算Delay循環(huán)中有幾條代碼,需要多少個指令周期。除一下可以算個大概。具體你可以結合硬件資料來算。
算法是這樣的:這個用編譯軟件,如keil,編譯通過之后,進入軟件調(diào)試功能,就可以測出來是延時多少秒。具體我?guī)湍阏{(diào)試過了,如果單片機接12mhz晶振的話,這個是延時0.2秒的子程序。你調(diào)用一次delay();就延時0.2秒。
所謂的延時程序,就是讓程序進入一段無效循環(huán),達到延時目的 有一個延時參數(shù)表的。
C語言的延遲函數(shù)一般是利用無意義程序運行來控制時間從而達到延時的目的 舉個例子:for(i=0;ix;i++)for(j=0;j120;j++);這是延時x毫秒的for循環(huán)語句。值得注意的是記得最后的;一定得記得寫。
這個程序應該是板子上延時的程序。a就是需要延遲的毫秒數(shù)(也可能是其他單位)。
你是用pc還是用單片機啊?pc的當然速度快了。那要看pc的時鐘才能做1ms的延時:void delay(unsinged long n){...} 中間要加空語句的,但是pc實際上沒喲這么用的。要是單片機。