微控制器中用寫delay函式做延時和用定時器做延時有什麼區別

2021-04-20 12:57:59 字數 3347 閱讀 1223

1樓:匿名使用者

利用迴圈處理抄的方式實現的延襲

時,並不精確。

1、當中斷髮生時,cpu被打斷先執行中斷服務。導致執行時間變長。

2、使用高階語言時,編譯的結果受優化等級等多方面因素干擾,難以計算。

3、在有mmu和cache的mcu中,指令的執行速度還會受到快取的影響。

利用定時器延時:

1、因為定時器累加與cpu無關,即使中斷,仍然會保持計數。不受上述問題影響

2、缺點需要佔用定時器資源。

3、功耗也會高一些

51微控制器軟體延時和定時器的區別

2樓:mrs鹿大大

區別就是用微控制器軟體定時,cpu迴圈執行一小段延時程式,浪費cpu的精力,用定時器定時,cpu就可以幹別的。

如果是程式延時的話,時間消耗在(延時程式+剩下的**);計時器中斷則相當於把延時程式交給定時器,此時cpu可以幹別的事情,提高了效率。就類似於電腦打遊戲時把圖形處理任務交給顯示卡,cpu的壓力就小。

微控制器進中斷後執行中斷裡的程式,比如你進定時中斷,執行完後退出中斷後做其他事,但定時還在計數,這樣計數和做其他事情兩不誤。

你的程式中本來就沒做其他事情,你的led移動就是等待中斷計數到10才操作的,led動作的先決條件就是中斷計數結束。

擴充套件資料

1、軟體迴圈延時:採用迴圈語句,如for,while等,進行長時間的空操作,或者空語句。

優點:程式理解簡易,入手快,新手必備**。

缺點:時間精度不高,且佔用微控制器大量時間資源,引發其它子函式的不流暢(卡滯、遲鈍),導致系統實時反應能力下降。

2、定時延時:採用定時器定時,如t0,t1;

優點:時間精度高,提高系統程式執行的高效性,不影響子函式的正常執行。

缺點:需佔用1個定時器資源(可以複用),需良好程式構架支援,入手難。

個人建議:一旦學會定時器,就不應該再使用「迴圈延時」函式,採用定時器才是正道。如果對延時精度要求不高,建議使用結構體組成多個延時體。

3樓:匿名使用者

微控制器進中斷後執行中斷裡的程式,比如你進定時中斷,執行完後退出中斷後做其他事,但定時還在計數,這樣計數和做其他事情兩不誤。

你的程式中本來就沒做其他事情,你的led移動就是等待中斷計數到10才操作的,led動作的先決條件就是中斷計數結束

4樓:做而論道

用軟體定時,cpu 迴圈執行一小段延時程式。

浪費 cpu 的精力。

用定時器定時,cpu 就可以幹別的。

5樓:寂寞小鳥

如果是程式延時的話,時間消耗在(延時程式+剩下的**);計時器中斷則相當於把延時程式交給定時器,此時cpu可以幹別的事情,提高了效率。就類似於電腦打遊戲時把圖形處理任務交給顯示卡,cpu的壓力就小了。

6樓:匿名使用者

進入中斷後執行i++後就出來了。然後在主函式while(1)中執行。此時while(1)執行很多次,然後再進入中斷,直到進10次才左移。

如果用延時,燈閃一次while(1)才允許一次。你程式少沒感覺,如何你該一下沒用8s控制一個燈閃,10s控制寧一個燈閃.延時就不太好做。

微控制器定時與延時的區別 5

7樓:牽著你的手

定時,是指在做一件事情過程中,後臺有個計時器,預定時間到後觸發另一項工作。

延時,是指在做一件事情過程中,保持一種工作狀態的時間。

利用迴圈處理的方式實現的延時,並不精確。

1、當中斷髮生時,cpu被打斷先執行中斷服務。導致執行時間變長。

2、使用高階語言時,編譯的結果受優化等級等多方面因素干擾,難以計算。

3、在有mmu和cache的mcu中,指令的執行速度還會受到快取的影響。

利用定時器延時:

1、因為定時器累加與cpu無關,即使中斷,仍然會保持計數。不受上述問題影響

2、缺點需要佔用定時器資源。

3、功耗也會高一些。

8樓:

定時用的硬體定時器控制,延時,用的是延時子程式,就是軟體程式設計

9樓:紫嘯清風

定時會進入中斷,中斷有中斷子程式,定時的使用必須設定ie暫存器,trx=1即可定時,進入子程式後定時必須重灌計數值,而延時,可認為就是一段空指令來浪費時間,延時也可把你的程式放到中斷定時子程式中達到延時效果!

微控制器中定時器的作用,跟延時函式有什麼區別?求形象易明的概念

10樓:匿名使用者

相同是都能實現延時,不同是延時函式要佔用系統資源,延時時不能幹別的工作

定時器不佔用cpu資源,不影響別的程式執行。

微控制器延時為什麼要用延時函式而不用定時器做延時

11樓:

只是延時的話,復

都可制以的。

不過微控制器的定時器等資源通常比較緊張,在延時精度要求不高的程式中採用延時函式的比較多,也可以呼叫 一些需要不斷重複但時間關係不是很嚴格的的子程式來延時,例如掃描鍵盤,重新整理顯示等

12樓:匿名使用者

恩到了stm32延時就一般不用軟體延時了,有系統嘀嗒時鐘

13樓:匿名使用者

看設計要求。定時器資源有限,在不要求精確延時的情況下用軟體程式大致進行延時!!

14樓:匿名使用者

stm32的延時基本上用定時器實現。51微控制器也可以定時器實現延時,不過比較麻煩,也沒有什麼優勢。

15樓:匿名使用者

51微控制器的定時效果不好,特別不好,這個我算是領教過了,還是用dleay函式吧,畢竟可以算出指令週期

微控制器中用寫delay函式做延時和用定時器做延時有什麼區別?

16樓:匿名使用者

利用迴圈處理的方式實現的延時,並不精確。

1、當中斷髮生時,cpu被打斷先執行中斷服務。導致執行時間變長。

2、使用高階語言時,編譯的結果受優化等級等多方面因素干擾,難以計算。

3、在有mmu和cache的mcu中,指令的執行速度還會受到快取的影響。

利用定時器延時:

1、因為定時器累加與cpu無關,即使中斷,仍然會保持計數。不受上述問題影響

2、缺點需要佔用定時器資源。

3、功耗也會高一些

17樓:

定時器的做法是在你的程式裡還有其他事要做的情況下去設定的。也就是說設定了定時器後就可以去做其他事情了,delay就是不做事光用消耗的,消耗一定的時間後再去做其他事

微控制器中用寫delay函式做延時和用定時器做延時有什麼區別

利用迴圈處理的方式實現的延時,並不精確。1 當中斷髮生時,cpu被打斷先執行中斷服務。導致執行時間變長。2 使用高階語言時,編譯的結果受優化等級等多方面因素干擾,難以計算。3 在有mmu和cache的mcu中,指令的執行速度還會受到快取的影響。利用定時器延時 1 因為定時器累加與cpu無關,即使中斷...

請求微控制器delay延時函式,51微控制器C語言中delay函式是怎麼定義和使用的?

如果在程式中x 10 你寫程式時肯定會給他賦一個值,在這裡假定是10 即在程式的某處會有delay 10 這樣的語句。相當於迴圈了600 x 600 10 6000次。可以根據自己的需要來定。你說得對,可以寫一個就行。但是有些晶片,你在控制他時,時序要求非常嚴格,如果延時太長或延時太短,都不會執行出...

51微控制器c語言中delay函式是怎麼定義和使用的

定義一個延時xms毫秒的延時函式 void delay unsigned int xms xms代表需要延時的毫秒數 使用 void delay10us uchar ms i 延時值 1.75 12 ms 15 41 在c51中進行精確的延時子程式設計時,儘量不要或少在延時子程式中定義區域性變數,所...