久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2458|回復: 13
打印 上一主題 下一主題
收起左側

單片機延時函數疑問

[復制鏈接]
跳轉到指定樓層
樓主
ID:1065550 發表于 2023-4-17 13:57 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
1.void delay(uint x)           //延時函數
{
     uint i,j;
         for(i=x;i>0;i--)
            for(j=0;j<110;j++);  
}
2.void Delay(unsigned int k)                //@11.0592MHz
{
        unsigned char i, j;

for(;k>0;k--)
        i = 2;
        j = 103;
                do
                {
         while (--j);
        } while (--i);
}
想問問for循環和do循環有什么區別,下面一個是stc里面的延時函數。
同時問問為什么第二個能延時1ms?i和j都代表什么?

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:883242 發表于 2023-4-17 15:26 | 只看該作者
具體到你的代碼,for和while循環沒有區別。i和j代表延遲時間。
回復

使用道具 舉報

板凳
ID:584814 發表于 2023-4-17 16:06 | 只看該作者
實際上這些所謂的延時就是讓系統空轉,由于不同的芯片在不同的主頻下速度不同,如果要非常精確的延時你懂的(通常用外接晶振+示波器輔助)。
兩者最直觀的區別是:for循環是先判斷后執行,do循環是先執行后判斷。
回復

使用道具 舉報

地板
ID:1065550 發表于 2023-4-18 13:04 | 只看該作者
man1234567 發表于 2023-4-17 16:06
實際上這些所謂的延時就是讓系統空轉,由于不同的芯片在不同的主頻下速度不同,如果要非常精確的延時你懂的 ...

明白了
回復

使用道具 舉報

5#
ID:1065550 發表于 2023-4-18 13:07 | 只看該作者
Hephaestus 發表于 2023-4-17 15:26
具體到你的代碼,for和while循環沒有區別。i和j代表延遲時間。

那他這個i和j怎么算出來延時1ms的呢?
回復

使用道具 舉報

6#
ID:883242 發表于 2023-4-18 13:24 | 只看該作者
Mang0 發表于 2023-4-18 13:07
那他這個i和j怎么算出來延時1ms的呢?

不用算,實測就行了。
回復

使用道具 舉報

7#
ID:291668 發表于 2023-4-18 13:46 | 只看該作者
仿真的時候看一下下邊運行時間,執行每條語句應該有時間顯示,從而估算變量的數值
回復

使用道具 舉報

8#
ID:155507 發表于 2023-4-18 14:33 | 只看該作者
毫秒級延時直接用定時器
看性能需要,性能高要求的用中斷吧,別讓他傻等,本來51性能就不好,傻等的話更沒效率了
還有硬件不同的情況,就需要重新實測了。比如晶振頻率不同,CPU內核速度不同,STC8H單片機就比STC15快了很多了比89系列快了十幾倍了。
回復

使用道具 舉報

9#
ID:1045628 發表于 2023-4-18 14:53 | 只看該作者
強制延時不可靠,不同單片機頻率不一樣這個i,j的值就會不一樣,一般可以用示波器測量翻轉的IO口來測出i,j的值,還有一個風險點,強制延時可能會被中斷干擾,精確延時應該用定時器進行延時
回復

使用道具 舉報

10#
ID:401564 發表于 2023-4-18 22:09 | 只看該作者
1,長延時不要用軟件來進行延時,要學會用定時器
2,如果是簡單程序,不想折騰,可以直接復制STC下載器的代碼,那個很準確的
3,就算是一樣品牌的單片機,就像STC,不同型號單片機之間,一樣的C代碼,延時的時間都是不一樣的
4,C語言的循環和實際的延時時間沒有什么對等的關系,不存在"怎么計算延時"這一說法,除非是單片機公司專用的編譯環境提供的延時函數,像PIC這樣的,它就有專用的延時函數
回復

使用道具 舉報

11#
ID:633522 發表于 2023-4-19 01:21 來自手機 | 只看該作者
并沒有什么區別
回復

使用道具 舉報

12#
ID:10193 發表于 2023-4-19 08:59 | 只看該作者
機器周期、指令周期、時鐘周期這些了解一下,你就明白了
回復

使用道具 舉報

13#
ID:587810 發表于 2023-4-19 10:35 | 只看該作者
for是知道循環次數的情況下使用,while是不知道循環次數的情況下用,for是執行完循環繼續執行其他指令,while是不滿足循環條件才退出執行,如果滿足循環條件則一直執行循環
回復

使用道具 舉報

14#
ID:1065550 發表于 2023-4-19 15:19 | 只看該作者
謝謝各位的解答,統一表達一下謝意
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 综合婷婷| 日操夜操| 国产又色又爽又黄又免费 | 中文av字幕| 九九热在线视频免费观看 | a毛片视频网站 | 狠狠干美女 | 国产精品永久免费视频 | 日韩精品影院 | 日韩av美女电影 | av在线一区二区三区 | 超碰免费观看 | 日韩综合网 | 九九在线精品视频 | 欧美性受 | 欧美精品一区二区三区蜜桃视频 | 成人免费大片黄在线播放 | 午夜小电影 | 91久久 | 日韩国产精品一区二区三区 | 草久视频| 久久精品免费 | 成人在线电影网站 | 99精品国产一区二区青青牛奶 | 久久久这里只有17精品 | 久久最新 | 欧美日韩在线国产 | 国产视频一区在线 | 国产成人精品一区二区三区视频 | 久久亚洲国产 | 国产在线资源 | 日本午夜在线视频 | 国产色在线| 91在线观看 | 色资源在线视频 | 男女啪啪高潮无遮挡免费动态 | 电影午夜精品一区二区三区 | 日韩中文一区二区三区 | 91免费视频观看 | 黄色欧美视频 | 一区二区三区高清 |