真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語(yǔ)言標(biāo)準(zhǔn)延時(shí)函數(shù),C延時(shí)函數(shù)

c語(yǔ)言中一個(gè)標(biāo)準(zhǔn)的延時(shí)1us的函數(shù)怎么寫(xiě)?

如果是單片機(jī)上,是有可能的

創(chuàng)新互聯(lián)公司從2013年創(chuàng)立,先為綦江等服務(wù)建站,綦江等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為綦江企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

單片機(jī)12M晶振執(zhí)行一條指令1us,所以C語(yǔ)言1us延時(shí)程序 用12M晶振延時(shí)1us,用—_nop_();

#includeintrins.h //頭文件

_nop_(); //這一個(gè)語(yǔ)句表示1us延時(shí)

C語(yǔ)言延時(shí)函數(shù)

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ǔ)句。

值得注意的是記得最后的;一定得記得寫(xiě)。

C語(yǔ)言中用什么函數(shù)來(lái)延時(shí) 謝謝

延遲函數(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)自行查找。

單片機(jī)C語(yǔ)言編程關(guān)于延時(shí)函數(shù)

單片機(jī)的C語(yǔ)言關(guān)于延時(shí)函數(shù)主要有兩種

一種是用for循環(huán),通過(guò)單片機(jī)執(zhí)行空指令達(dá)到延時(shí)的目的

如:

for(i=0;i100;i++)

{

;

}

這個(gè)簡(jiǎn)單的語(yǔ)句會(huì)執(zhí)行100次空指令

每一次指令的時(shí)間可以大概確定

因此這個(gè)是最簡(jiǎn)單的延時(shí)函數(shù)

第二種是通過(guò)定時(shí)器的方式來(lái)實(shí)現(xiàn)

定時(shí)器是通過(guò)對(duì)單片機(jī)的晶振進(jìn)行計(jì)數(shù)

然后在定時(shí)器中斷服務(wù)函數(shù)里面實(shí)現(xiàn)定時(shí)時(shí)間的計(jì)算及設(shè)置

51單片機(jī)的定時(shí)器0中斷服務(wù)函數(shù)為

void

time0()

interrupt

1

{

...

}

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

你是用pc還是用單片機(jī)啊?

pc的當(dāng)然速度快了。

那要看pc的時(shí)鐘才能做1ms的延時(shí):

void delay(unsinged long n){....}

中間要加空語(yǔ)句的,但是pc實(shí)際上沒(méi)喲這么用的。

要是單片機(jī)。

12M的晶振就是(非1T的)

void delay(unsinged int)

{

inti,j;

for(j=0;jn;j++)

for{i=0;i125;i++}{;}

}

標(biāo)準(zhǔn)C如何延時(shí)

假設(shè)一個(gè)延時(shí)函數(shù)如下:

void delay()

{

uint i;

for(i=0;i20000;i++);

}

我們?cè)趺磥?lái)算呢,先將20000轉(zhuǎn)成16進(jìn)制,得到4E20,然后將高字節(jié)4E乘以6得到468D,再將468+2=470,然后將470D*20HEX(即32D)=15040;所心這個(gè)延時(shí)函數(shù)總共要執(zhí)行15040個(gè)周期,假設(shè)所用的晶振為12MHZ,則該段函數(shù)總延時(shí):15.04ms。

有了這個(gè)公式我們?nèi)绻胍O(shè)定指定的延時(shí)長(zhǎng)度就可以用它的己知公式確定。即:總時(shí)間=[(6*i值的高8位)+2]*i的低8位。

例如:設(shè)要延時(shí)125ms。

我們將低字節(jié)先賦值200D*(即:C8),然后再算高低節(jié)的定值,由式中可知125ms=200*((i值的高字節(jié)*6)+2),又可推算出(高低節(jié)*6)+2的總延遲時(shí)間應(yīng)等于625us,將625/6=104.1666,取整數(shù)得到104,將104轉(zhuǎn)成16進(jìn)制得到68H,再將高字節(jié)和低字節(jié)組合起來(lái)即得到了定值,即:68C8HEX,代入函數(shù)即如下:

void delay()

{

uint i;

for(i=0;i0x68C8;i++);

}

如果寫(xiě)直進(jìn)行就要將68C8轉(zhuǎn)成10進(jìn)制,即:26824,代入后得到:

void delay()

{

uint i;

for(i=0;i0x26824;i++);

在c語(yǔ)言中嵌入一段匯編的延時(shí)程序呀,你自己看看書(shū),很簡(jiǎn)單的

用在單片機(jī)里的可以C和匯編混合使用,因?yàn)橛脜R編編寫(xiě)延時(shí)要準(zhǔn)確些,所以你不妨寫(xiě)一個(gè)匯編程序,然后再調(diào)用它好了,要用C來(lái)編精確的延時(shí)確實(shí)是比較難的哦.呵呵

誰(shuí)說(shuō)C語(yǔ)言不能精確延時(shí),用51單片機(jī)的定時(shí)/計(jì)數(shù)器一或者用定時(shí)/計(jì)數(shù)器2的工作方式2,自動(dòng)再裝入8位計(jì)數(shù)器,就可以精確延時(shí),別說(shuō)1MS了就是100um也能精確做到。

其實(shí)很簡(jiǎn)單,采用定時(shí)器,將需要定時(shí)時(shí)間算好后寫(xiě)入單片機(jī)中斷程序中即可,這種方法可以實(shí)現(xiàn)精確定時(shí),最終的誤差僅由晶振來(lái)確定了。

不錯(cuò),用定時(shí)器最準(zhǔn)確。但是定時(shí)器數(shù)量有限,有時(shí)候不見(jiàn)得能夠用。比如溫度檢測(cè)(尤其是變化比較大、快的),一個(gè)定時(shí)器就得一直不停檢測(cè)。這個(gè)時(shí)候如果另外一個(gè)定時(shí)器有正好分配的其他任務(wù),就只有用其他方法延時(shí)了。

空循環(huán)就行了

如while(i--);根據(jù)i的不同決定了延時(shí)長(zhǎng)短

不過(guò)C的延時(shí)不是非常準(zhǔn)確,你得根據(jù)反匯編,看匯編語(yǔ)句的數(shù)量和指令周期來(lái)計(jì)算時(shí)間

也可以是

void mDelay(unsigned int Delay) //Delay = 1000 時(shí)間為1S

{

unsigned int i;

for(;Delay0;Delay--)

{

for(i=0;i124;i++)

{;}

}

}


文章題目:c語(yǔ)言標(biāo)準(zhǔn)延時(shí)函數(shù),C延時(shí)函數(shù)
當(dāng)前路徑:http://weahome.cn/article/phhjph.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部