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

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

用c語言延時函數(shù)怎么寫 c程序延時函數(shù)

求一個C語言的微秒級延時函數(shù)

c語言,微秒級延時

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

void?Delay_us?含橋(unsigned?char?time_us)

{

unsigned?long?int??TM_LODAE;

TR2???=?0;??????????????????????????//?Stop?timer

TF2H??=?0;??????????????????????????//?Clear?timer?overflow?flag

TM_LODAE?=?65535-(UINT)(SYSCLK/1000000)?*?(UINT)(time_us);

//?TMR2?逗悶?=?-(?(UINT)(SYSCLK/1000000)?*?(UINT)(time_us)?);

TMR2H?=??TM_LODAE8;

TMR2L =??TM_LODAE0x00FF;

TR2???=?1;??????????????????????????//?Start?timer

while?(!TF2H);??????????????????????//?Wait?till?timer?overflow?occurs

TR2???=?0;??????????????????????????//?Stop?timer

}

程序分析:

前面一起住航分析一下該代碼,

unsigned?long?int??TM_LODAE;??聲明一個長整型數(shù)據(jù),

TR2???=?0;????定時器2停止計時

TF2H??=?0;??????清除定時器2中斷標(biāo)志

TM_LODAE?=?65535-(UINT)(SYSCLK/1000000)?*?(UINT)(time_us);????談指猛計算定時器初值。?SYSCLK是系統(tǒng)的晶振頻率,SYSCLK/1000000是系統(tǒng)?1uS?執(zhí)行的指令。?(UINT)(SYSCLK/1000000)?*?(UINT)(time_us)就是系統(tǒng)?time_us執(zhí)行的指令數(shù)。?65535-(UINT)(SYSCLK/1000000)?*?(UINT)(time_us)定時器需要?TM_LODAE指令周期才會溢出。

該單片機的一個指令周期就是一個時鐘周期.TMR2H?=??TM_LODAE8;??TMR2L =??TM_LODAE0x00FF;置定時器寄存器的初值、

TR2???=?1;???啟動單片機計時? while?(!TF2H); ?等待定時器2寄存器溢出。TR2???=?0;停止計時,在這段代碼注釋中已經(jīng)說明了應(yīng)該有50nS的誤差,這個是函數(shù)調(diào)用產(chǎn)生的。


標(biāo)題名稱:用c語言延時函數(shù)怎么寫 c程序延時函數(shù)
URL網(wǎng)址:http://weahome.cn/article/dspjseg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部