欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3279|回復(fù): 9
打印 上一主題 下一主題
收起左側(cè)

關(guān)于Delay組成的C語(yǔ)言語(yǔ)句問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
DelayMS(3800)   是3.8s,怎么跑了0.18s

IMG_20190930_172408.jpg (9.6 MB, 下載次數(shù): 32)

IMG_20190930_172408.jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:275826 發(fā)表于 2019-10-4 12:11 | 只看該作者

DelayMS(3800)  誰(shuí)說(shuō)是3.8s,具體多長(zhǎng)跟晶振和子程序函數(shù)都有關(guān)系
回復(fù)

使用道具 舉報(bào)

板凳
ID:619205 發(fā)表于 2019-10-4 14:34 | 只看該作者
Delay程式 延遲的時(shí)間和你所使用的指令週期與Delay方法有關(guān)我看你的圖片事阻塞式延遲,原理就是跑空指令,根據(jù)芯片不同每一個(gè)指令都需要花費(fèi)數(shù)個(gè)指令週期
你的Delay在副程式中視兩個(gè)空的迴圈函數(shù),裡面的for(i=0;i<y;i++) 中的y代表你每次執(zhí)行會(huì)跑幾個(gè)空迴圈
,whie(x--) 中的x 是你可以輸入的變數(shù),意思是你要跑幾次for迴圈 , 如果你輸入x,那你執(zhí)行空迴圈的次數(shù)就是x*y次,如果你輸入x=3800那
,就是執(zhí)行了3800*y次迴圈空迴圈.
如果使用這種方式來(lái)來(lái)完成Delay你可以去看你芯片執(zhí)行指令需要多少時(shí)間來(lái)計(jì)算實(shí)際的延遲時(shí)間,會(huì)者用其他發(fā)法一個(gè)一個(gè)嘗試來(lái)確定執(zhí)行1次for迴圈需要多久.
當(dāng)然用這種方式時(shí)間不會(huì)太準(zhǔn)確,如果時(shí)間要求精度高可以選擇使用TIM,或改用組合語(yǔ)言.

評(píng)分

參與人數(shù) 2黑幣 +90 收起 理由
機(jī)子單 + 30
admin + 60 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

地板
ID:616666 發(fā)表于 2019-10-4 14:38 | 只看該作者
有沒(méi)有大神,指導(dǎo)下,工作過(guò)程
回復(fù)

使用道具 舉報(bào)

5#
ID:155507 發(fā)表于 2019-10-4 18:12 | 只看該作者
機(jī)子單 發(fā)表于 2019-10-4 14:38
有沒(méi)有大神,指導(dǎo)下,工作過(guò)程

你可以參考這個(gè)

http://www.raoushi.com/bbs/dpj-4711-1.html
回復(fù)

使用道具 舉報(bào)

6#
ID:619372 發(fā)表于 2019-10-5 05:48 | 只看該作者
不是循環(huán)多少次就是多少秒的,可以直接搜delay()函數(shù),可以查到很多常用的。
回復(fù)

使用道具 舉報(bào)

7#
ID:155507 發(fā)表于 2019-10-5 07:16 | 只看該作者
一、51單片機(jī)軟件延時(shí):
1、 幾種周期介紹
  周期名稱(chēng)
            描述
            時(shí)間
  
  振蕩
            單片機(jī)提供時(shí)鐘脈沖信號(hào)
  的振蕩源的周期
            T=1/f
  
  狀態(tài)
            振蕩周期經(jīng)二分頻后得到
  的
            2T
  
  機(jī)器
            CPU 可以完成一個(gè)獨(dú)立操
  作所需要的周期
            12T
  
  指令
            指 CPU 完成一條操作所需
  的全部時(shí)間
            n*12T
  


2、指令:
1、MUL、DIV:僅有的 4 周期指令
2、包含 DPTR 和 PC 的指令均為 2 周期指令
3、所有的絕對(duì)跳轉(zhuǎn)和條件轉(zhuǎn)移指令,均為 2 周期指令
4、所有包括 A 寄存器的指令,均為單周期指令
5、位操作指令中,ANL 和 ORL 是 2 周期指令
6、所有包含立即地址的指令,除 INC direct 及 DEC direct 外,均為 2 周期指令
7、剩下的均為單周期指令。如:
void delay(uint z)
{
uint i ,j;
for(i = z; i> 0;i--)


for(j =0; j < 921; j++)
}


分析:
1.先計(jì)算你單片機(jī)的振蕩(時(shí)鐘)周期 T=1/晶振(11.0592MHZ)
2.一次 i--操作為 12T
3.忽略變量定義,上述延時(shí)函數(shù)共需時(shí)間:921*z*12T
4.帶入 T:921*12*T*z 約為 z us
3、計(jì)算誤差出現(xiàn)的原因:
1.軟件仿真時(shí),函數(shù)調(diào)用的時(shí)候入棧出棧操作的耗時(shí)。
2.指令周期隨指令的不同而不同導(dǎo)致的誤差。
3.中斷的影響。
4.變量的范圍超過(guò),從而與預(yù)計(jì)時(shí)間不一樣。


while(i--):如果 i 為 char 型,執(zhí)行一次大概為 5us 左右;如果 i 為 int 型則執(zhí)行一次大概為 10us 左右。注意:軟件延時(shí)通常用于時(shí)序要求較高的編程中,其它需延時(shí)較長(zhǎng)的地方必須采用單片機(jī)內(nèi)部定時(shí)器。

評(píng)分

參與人數(shù) 1黑幣 +12 收起 理由
機(jī)子單 + 12

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

8#
ID:445775 發(fā)表于 2019-10-5 10:33 | 只看該作者
延時(shí)時(shí)間和單片機(jī)的時(shí)鐘頻率有關(guān),可以去網(wǎng)上下載例如單片機(jī)小精靈之類(lèi)的工具,不僅可以生成相對(duì)準(zhǔn)確的延時(shí),提供了波特率生成器等工具,簡(jiǎn)單暴力
回復(fù)

使用道具 舉報(bào)

9#
ID:451448 發(fā)表于 2019-10-5 16:48 | 只看該作者
這個(gè)是跟你的CPU的執(zhí)行速度有關(guān),假如你用的CPU一毫秒能執(zhí)行2條指令,那么循環(huán)體里面的數(shù)值為2時(shí),代表執(zhí)行一次這個(gè)函數(shù)所花的時(shí)間為1ms,數(shù)值為4的話(huà),代表執(zhí)行一次這個(gè)函數(shù)代表花費(fèi)時(shí)間為2ms,依次來(lái)達(dá)到延時(shí)的目的,不過(guò)這種延時(shí)是不夠精準(zhǔn)的,用在要求精度不高的事件
回復(fù)

使用道具 舉報(bào)

10#
ID:158375 發(fā)表于 2019-10-5 17:19 | 只看該作者
DelayMS(3800)   是3.8s,怎么跑了0.18s
  -----
  軟件延時(shí),不太準(zhǔn)確,與許多都有關(guān)系,例如中斷等等.....再說(shuō),DelayMS(3800) ,你咋確定是3.8S的?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表