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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

關于單片機延時程序的小問題

  [復制鏈接]
跳轉到指定樓層
樓主
ID:366764 發表于 2018-10-18 20:57 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
void delay10ms(void)  
{
    unsigned char a,b,c;
    for(a=1;a>0;a--)
        for(b=38;b>0;b--)
            for(c=130;c>0;c--);

void delay10ms(void)  
{
    unsigned char a,b;
    for(a=38;a>0;a--)
        for(b=130;b>0;b--);
  求解釋這倆有什么本質上的區別嗎?   同樣都是延時一樣的時間,但這兩種寫法都有見過,不知道只是個人習慣上的問題,還是有什么更專業的區別。



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

使用道具 舉報

沙發
ID:213173 發表于 2018-10-19 07:40 | 只看該作者
1. T=a*b*c
2. T=a*b
回復

使用道具 舉報

板凳
ID:164602 發表于 2018-10-19 08:39 | 只看該作者
其實是一樣的。
第一種情況,多一個循環,但只循環一次,與第二種相差的時間可以忽略。
回復

使用道具 舉報

地板
ID:155507 發表于 2018-10-19 10:57 | 只看該作者
都是軟件延時,阻塞延時,就相當于CPU在空跑。

1. 新手的程序都是While大循環里,而且代碼執行時間也比較短,這個時候用軟件延時看不出來明顯的差異。

2. 一般不建議使用軟件延時,因為CPU的資源是有限的,軟件延時就相當于CPU在空跑,當程序比較龐大的時候,許多程序處理不過來,根本沒有多余的時間給你去延時。

3. 可以用定時器,如定時1ms,然后把程序分為1ms的任務,2ms的任務,4ms的任務,分時去操作,當你需要延時的時候,就在里邊搞個計數,時間到再去執行。

回復

使用道具 舉報

5#
ID:401564 發表于 2018-10-19 17:02 | 只看該作者
本質上是有區別的,就看你單片機的時鐘頻率了
前面一個函數用了三個變量,在編譯的時候,單片機延時會用到三個地址,后面的函數用了兩個變量,同理,編譯時就用到兩個地址。這樣一來,前面一個函數就比后面的函數多用幾個時鐘來初始化那多出來的一個地址,至于會用到幾個時鐘,不知道,也許就現一兩個時鐘吧。
如果你晶振是MHZ級別的,那區別也就幾uS或者0.幾uS,對于100mS的延時來說,沒有什么差別,如果你用的是KHZ級別的時鐘,那相差就是0.幾mS了。
只要有指令,編譯器就會編譯,就算是沒有什么用的指令,單片機也一樣的執行,一樣的用上一定的時間。
回復

使用道具 舉報

6#
ID:300212 發表于 2018-10-19 22:20 來自觸屏版 | 只看該作者
沒有區別,你這個延遲函數應該是軟件一鍵生成的,這是方便一鍵生成而加的循環,實際上道理都是一樣的
回復

使用道具 舉報

7#
ID:412533 發表于 2018-10-19 23:44 | 只看該作者
其實也很簡單啊,復制就行,比如這個說。
回復

使用道具 舉報

8#
ID:412575 發表于 2018-10-20 08:35 | 只看該作者
第一種for循環只執行一次,寫不寫意義不大,只占用一個一個執行周期,理論上講第一種比第二種延時時間長一點,用示波器可以看出兩個信號的微小區別
回復

使用道具 舉報

9#
ID:412601 發表于 2018-10-20 09:43 來自觸屏版 | 只看該作者
多了一個地址出來
回復

使用道具 舉報

10#
ID:357520 發表于 2018-10-20 11:29 | 只看該作者
第二種可以少寫一句話,看著也舒服
回復

使用道具 舉報

11#
ID:412662 發表于 2018-10-20 11:52 | 只看該作者
幾乎沒有差別
回復

使用道具 舉報

12#
ID:412694 發表于 2018-10-20 13:40 | 只看該作者
沒有區別,都是通過來執行這些for循環來占用時間,從而達到一定延時的效果
回復

使用道具 舉報

13#
ID:147024 發表于 2018-10-20 23:04 | 只看該作者
1*38*130與38*130的區別,你說有區別沒有
回復

使用道具 舉報

14#
ID:412964 發表于 2018-10-21 08:31 | 只看該作者
為啥寫這么復雜,寫i<N  不是更好么?簡單。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲视频在线一区 | 一区二区三区亚洲 | 精品一区二区电影 | 国产亚洲成av人片在线观看桃 | 中文字幕久久精品 | 亚洲精品视频在线看 | 国产精品美女www | 久久久久久久一区二区三区 | 男人天堂网址 | 一区二区不卡视频 | 精品二区 | 日韩av.com | 国产精品一二三区 | 北条麻妃一区二区三区在线观看 | 天天干b| 日韩在线小视频 | 久久网日本 | 日本精品一区二区三区在线观看视频 | 欧美精品三区 | 天天躁日日躁狠狠躁2018小说 | 国产精品欧美精品 | 国产欧美综合在线 | 国产成人精品网站 | 久久久久国产精品一区 | 精品久久1 | 污视频在线免费观看 | 精品国产亚洲一区二区三区大结局 | 亚洲a人 | 国产成人在线视频播放 | 欧美一级黄色免费 | 精品国产一区二区三区久久 | 欧美福利久久 | 日韩欧美在线视频 | 亚洲国产精品久久 | 日日干日日操 | 日韩在线免费电影 | 国产二区三区 | 伦理午夜电影免费观看 | 日韩精品免费在线观看 | 久久久久九九九女人毛片 | 日韩免费中文字幕 |