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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8971|回復: 13
打印 上一主題 下一主題
收起左側(cè)

小白請問單片機延時函數(shù)的具體作用與里面語句的含義

  [復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:694299 發(fā)表于 2020-3-15 21:09 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
//小白請教:問m,n的含義,為什么用他們,他們在哪方面起到什么作用

void delay60ms(void)
{
    unsigned char m,n;
    for(m=0;m<100;m++)
    for(n=0;n<200;n++)
    ;
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:709078 發(fā)表于 2020-3-15 21:42 | 只看該作者
樓主的題中,“m”和“n”是函數(shù)定義的變量,也可以用其他字母像“i"和“j”,就是通過他們的值得變化和相互的關(guān)系實現(xiàn)延時,像原地踏步一樣。
回復

使用道具 舉報

板凳
ID:668457 發(fā)表于 2020-3-16 00:43 | 只看該作者
現(xiàn)實中單片機運行程序是需要時間的,各個器件都需要時間(即使很短),比如按鍵,當你按下是一個過程并不是瞬間完成。所以需要等待時間來確認
回復

使用道具 舉報

地板
ID:462827 發(fā)表于 2020-3-16 00:48 | 只看該作者
m、n都是循環(huán)次數(shù),空循環(huán)空轉(zhuǎn)來延時
回復

使用道具 舉報

5#
ID:709151 發(fā)表于 2020-3-16 00:56 | 只看該作者
單片機的運行雖然很快,但也是需要時間的,先看n的設(shè)置,n要從0加到200,而中間不執(zhí)行任何程序,單片機會在很快的速度內(nèi)完成這項任務(wù),雖然很快,但也消耗了一定的時間,m在0-100的過程中所執(zhí)行的任務(wù)相當于把n從0加到200執(zhí)行100次,這樣單片機所消耗的時間就顯著增加了,m和n就相當于函數(shù)里的x,y,本身沒有意義,char 后面可以換成任意兩個字母。
回復

使用道具 舉報

6#
ID:149799 發(fā)表于 2020-3-16 08:38 | 只看該作者
謝謝樓上幾位的講解
回復

使用道具 舉報

7#
ID:703220 發(fā)表于 2020-3-16 11:35 | 只看該作者
首先你要能承認機器不論執(zhí)行一條多么短的程序都是要消耗時間的,所謂延時函數(shù)就是在執(zhí)行這個函數(shù)時,能起到既讓CPU運行著去消耗時間,又讓CPU實際上并不執(zhí)行真正你不需要的操作。這也就是相當于機器在原地踏步。
我舉一個比你這個還簡單的并且能起到延時作用的函數(shù):
void delay()
{
     unsigned int i=50000;
     while(i--)
}
void 代表這個函數(shù)沒有返回值
delay 是函數(shù)的名字
()內(nèi)沒有內(nèi)容說明沒有參數(shù)
unsigned int i=50000  中unsigned int是無符號整型數(shù)據(jù)類型,所以這句話的意思是定義一個無符號整型變量i并賦初值。
花括號內(nèi)是函數(shù)體
while(i--)是循環(huán)函數(shù),這個函數(shù)是當()內(nèi)的參數(shù)不為0時執(zhí)行,由于i初值不為0,所以要自減50000次才能為0,所以才能跳出這個循環(huán),故CPU要在這里花費時間去執(zhí)行這50000次循環(huán)。

由上述可知,可以實現(xiàn)讓CPU停在延時函數(shù)處,從而不去執(zhí)行延時函數(shù)下面的程序。


所以這種延時函數(shù)與其說是延時,不如是讓CPU干點別的事,而這些事只能浪費CPU的時間,卻不能讓它真正干出什么成就。

你給的這個函數(shù)和我這個不同的就是用for這個循環(huán)語句又嵌套了一個for,更浪費時間而已
回復

使用道具 舉報

8#
ID:709334 發(fā)表于 2020-3-16 11:51 | 只看該作者
單片機初學者,正好搞不懂這部分,謝謝各位大佬
回復

使用道具 舉報

9#
ID:709172 發(fā)表于 2020-3-16 13:52 | 只看該作者
m,n分別是外循環(huán)和內(nèi)循環(huán)的循環(huán)次數(shù),這2個嵌套循環(huán)總計循環(huán)m*n次,就是延時約5*m*n個指令周期(不包括調(diào)用for循環(huán)的開銷)
回復

使用道具 舉報

10#
ID:709787 發(fā)表于 2020-3-17 09:48 來自觸屏版 | 只看該作者
mn是這個子函數(shù)中的臨時變量。當然,也可以換成x,y等。任意。為什么是unsigned char類型。因為x.y的數(shù)值沒超255,所以不用unsigned int(0~65536)。可以節(jié)約單片機的存儲空間。
回復

使用道具 舉報

11#
ID:619787 發(fā)表于 2020-3-17 22:51 | 只看該作者
自定義變量,起到記數(shù)的作用。
回復

使用道具 舉報

12#
ID:710594 發(fā)表于 2020-3-18 09:17 | 只看該作者
單片機運行速度特別快,為了實現(xiàn)人機交互就需要延時函數(shù)。m,n沒有特別的意義,就是普通的變量。你可以通過改變m,n的值來增減循環(huán)的次數(shù)。從而改變延時的長短。
回復

使用道具 舉報

13#
ID:531524 發(fā)表于 2020-3-18 11:05 | 只看該作者
void delay60ms(void)
{
    unsigned char m,n;
    for(m=0;m<100;m++)
    for(n=0;n<200;n++)
    ;
}
第一個for沒有大括號,這要寫的意義不大
這是典型的延時函數(shù),for循環(huán)里再for循環(huán),目的就程序在這里等待
m,n都是控制循環(huán)次數(shù)的。循環(huán)次數(shù)越多等待時間越長。
回復

使用道具 舉報

14#
ID:751533 發(fā)表于 2020-5-17 11:15 | 只看該作者
答得很好,謝謝
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕综合 | 欧美视频三区 | 欧美在线看片 | 亚洲精品视频导航 | 噜久寡妇噜噜久久寡妇 | 日韩免费一区二区 | 91在线视频国产 | 亚洲一区二区三区免费在线观看 | 久久久99精品免费观看 | 亚洲a一区| 欧美亚洲国产一区 | 国产一级毛片精品完整视频版 | 精品一区二区三区在线观看 | 日韩精品在线视频免费观看 | 久久久精品在线 | 精品一二区 | 黄a在线播放 | 欧美一页| 东方伊人免费在线观看 | 欧美一区二区三区 | 欧美日韩福利视频 | 一级二级三级黄色 | 高清视频一区二区三区 | 日本一区二区三区在线观看 | 日韩av在线一区 | 欧美成人综合 | 国产精品片aa在线观看 | 日韩α片 | 亚洲一区综合 | 日韩三极 | 看亚洲a级一级毛片 | 狠狠入ady亚洲精品经典电影 | 免费在线成人网 | 久久999 | 秋霞精品 | 欧美一级三级在线观看 | 国产美女永久免费无遮挡 | 国产精品视频久久久久久 | 精品在线观看入口 | 一级毛片免费完整视频 | 成人精品一区二区三区 |