音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

如何計(jì)算軟件延時(shí)

作者:6261666 欄目:單片機(jī)
比如說我單片機(jī)用的晶振是12M
為何10ms的編程方式不同呢?
while(i=10;i>0;i--)
{for(j=0;j<72;j++)
{;}
}
而這種方式卻不同
for(i=10;i>0,i--)
{for(j=0;j<120;j++)
   {;}
}
不解為什么第一個(gè)循環(huán)次是72,第二種卻是120,還有這個(gè)具體的精確的時(shí)間是怎么算出來的?謝謝各位高手
2樓: >>參與討論
月之暗面
最簡單的辦法就是用keil C的模擬運(yùn)行一下
看一下花了多少時(shí)間
3樓: >>參與討論
zlgdz
樓主怎么知道第一個(gè)運(yùn)行了72次的? 精確的計(jì)算時(shí)間,我想要看編譯后的程序了吧
4樓: >>參與討論
lihai813
請問可不可以學(xué)C語言而不學(xué)匯編?聽很多人說初學(xué)先學(xué)匯編好點(diǎn),是這樣嗎?
5樓: >>參與討論
aibxyz
可是可以的,但那樣無法深入
6樓: >>參與討論
huashi911
一般延時(shí)的計(jì)算需要對匯編有一定的了解, 比如你說的 12M 的晶振, 那么每條指令的機(jī)器周期就是1/12M s  

然后你自己來計(jì)算需要多少指令就可以延時(shí)10ms(要對每條指令占多長幾個(gè)周期要清楚)
7樓: >>參與討論
apsbj
一般延時(shí)的計(jì)算都是在keil C下反匯編
8樓: >>參與討論
lihai813

以下是引用 aibxyz 在(2005-6-4 9:35:36)的發(fā)言:

可是可以的,但那樣無法深入


無法深入?
9樓: >>參與討論
韋爾西
還是匯編看的一目了然,呵呵
10樓: >>參與討論
ee168
你用C語言去要求知道精確的定時(shí),這正是C語言的弱點(diǎn),C語言編譯時(shí)各個(gè)編譯軟件的不同,產(chǎn)生的變量的存儲(chǔ)方法,程序段放在什么地方都影響到定時(shí)的長短.如1樓說的,還不如模擬一下來的快.
11樓: >>參與討論
huasha2001
如果你想自己來進(jìn)行你知道的確定的時(shí)間,可以在C語言程序中插入用匯編編寫的延時(shí)程序,那樣也能做到準(zhǔn)確的定時(shí)。但這種方法沒有模擬來的快
12樓: >>參與討論
mirrorok
1.用 #PRAGMA ASM 直接嵌入?yún)R編
2.#PRAGMA CODE 在編譯目錄下面會(huì)有一個(gè)LST文件,里面有匯編的代碼,具體運(yùn)行了多少時(shí)間,計(jì)算一下就知道了
13樓: >>參與討論
jani

以下是引用 apsbj 在(2005-6-4 17:12:21)的發(fā)言:

一般延時(shí)的計(jì)算都是在keil C下反匯編


看它把你這段程序編譯成哪些匯編語句了,然后查算每條語句需要多少執(zhí)行時(shí)間,然后加起來就
14樓: >>參與討論
jani
用中斷延時(shí)吧,不用去計(jì)算了
15樓: >>參與討論
jani
哈,有這樣的寫法嗎?
while(i=10;i>0;i--)
{
}
16樓: >>參與討論
wygzhy
哈,有這樣的寫法嗎?
while(i=10;i>0;i--)
{
}


呵呵呵,jani.xu這是人家的自創(chuàng)語法!
17樓: >>參與討論
mirrorok

哈,有這樣的寫法嗎?
while(i=10;i>0;i--)==========》if((i=10;i>0;i--)
{
}
18樓: >>參與討論
慕容帝
19樓: >>參與討論
徐正全
準(zhǔn)確來說第二條延時(shí)時(shí)間要準(zhǔn)確些.用WHILE時(shí)先要運(yùn)行完下面FOR的再去判斷是否滿足條伯,我算了下,第二個(gè)的誤差大約只有幾US,而條一個(gè)確有幾十US.你自己再多想下咯.不難的!
20樓: >>參與討論
威去滴邏
還是匯編感覺好些,雖然難點(diǎn)但準(zhǔn)確
21樓: >>參與討論
gaoshou
好像用I--的不能實(shí)現(xiàn)。我在做延時(shí)的時(shí)候,也用上種方法,不能用,我就改成I++的,就好了
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
請教485通訊問題
[求助]在調(diào)試ADUc812時(shí),復(fù)位返回值不是812 VCCC而是亂...
[求助]問個(gè)C52串口的問題
請教單片機(jī)與pc的串口通信
【歡迎討論】CPLD連接89C52 P0口的問題
免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號