-
有沒有可用於保持準確時間的延時程式? 並且延遲大小可以通過不同的分配來改變......有沒有可以準確計時日期襪子信的延遲程式?
並且延遲大小可以通過不同的分配來改變......,我通過網路搜尋大家收集了一些相關的解決方案,希望能幫助到有過相同或類似問題的凳子輪問題的網友們,詳情如下:
解決方案 1:
void delay(uint z)
uint x,y;
for(x=z;x>0;x--)
for(y=123;y>0;y--)
直接寫在你想延遲的地方。
延遲(資料);
例如,delay(5);
解決方案 2:
12M晶體振盪器。
引數 k 表示毫秒。
如果晶體振盪器不同,可以進行除錯和修改 j=110。
#define uchar unsigned char#define uint unsigned intvoid delayms(uint k)
uint i;
uchar j;
for(i=k;i>0;i--)
for(j=110;j>0;j--)
解決方案 3:
C 無法做到這一點,因此為了準確計時,請使用組合語言。 12m晶體振盪器精確到微秒,晶體頻率越高,可以達到的精度就越高。
解決方案 4:
吉祥的精確計時怎麼辦? 精度只能用計時器中斷。 本是網友。
解決方案 5:
網際網絡上有一種叫做 MCU Pixies 的工具,它具有精確的延遲程式設計。
-
12M晶體振盪器。
引數 k 表示毫秒。
如果晶體振盪器不同,可以進行除錯和修改 j=110。
#define uchar unsigned char#define uint unsigned intvoid delayms(uint k)
-
void delay(uint z)
直接寫在你想延遲的地方。
延遲(資料);
例如,delay(5);
-
網際網絡上有一種叫做 MCU Pixies 的工具,它具有精確的延遲程式設計。
-
精密計時怎麼辦? 精度只能用計時器中斷。
-
你可以做一段時間的迴圈,但時間不是很準確。 例如 i=100;
while(i--)
至於時間長度的確定,則取決於這個while迴圈被編譯成組合語言的指令數量,以及你使用的微控制器執行指令所需的時間,然後計算出你需要的迴圈數。 如果延遲時間不需要特別準確,這是乙個不錯的選擇,如果要求嚴格,最好開啟定時器。
-
去找下乙個微控制器精靈,他可以幫助你完成它。
-
這個delay()不是keil提供的,而是使用者自己編譯的,一般程式設計為delay(1)延遲1ms,你說的就是晶體振盪器12m時乙個指令週期(機器週期)的時間。
-
單位時間取決於使用者對 delay() 函式的設計。 通常在編寫程式時,為了使其更易於閱讀,我們會寫 delay ms() 來表示單位時間是 ms 的延遲,而 delay 10ms() 表示單位時間是 10ms 的延遲。
-
您可以將最小的單位視為 us,它可以組合成 ms,s,具體取決於延遲函式的編寫方式
-
這取決於所用晶體振盪器的頻率和**內部的延遲,可以粗略計算出來。
-
這取決於您編寫延遲函式的時間。
-
這取決於延遲中的 for 語句。
-
因為延遲是普遍的,但它佔了資源,樓上已經談得很徹底了。 建議定時器延遲更準確,在時間延遲時可以做其他事情,或者使用外部時鐘晶元來計時時間。
-
微控制器中沒有萬能延遲功能,這是最簡單的。
for(i=0;i<100;我++)這是乙個可以延遲的for迴圈(注意最後乙個分號),要理解延遲的原理,讓微控制器一直做一件事,比如上面就是執行這個語句直到i=99,只要你明白了這一點,其他的延遲都不難,你可以用迴圈巢狀來實現更長的延遲, 您不僅可以使用 for 語句,while 語句也可以使用。
-
軟體延遲是不精確的延遲,準確的延遲需要定時器中斷。 軟體延遲的計算可以拆解,彙編指令有相應的執行機週期,機週期=時鐘週期*12,時鐘週期是晶振頻率的倒數。
這些都可以通過“微控制器精靈”的軟體來實現,這不是乙個準確的時延,不需要深入研究,而且不同的51臺微控制器的執行速度不一樣,延時時間也不一樣。
原理:只是執行一些所謂的“無意義指令”,比如縮放或執行乙個int自加法,簡單來說,就像高中數學中的“乘法原理”一樣,很容易快速增加上面提到的“無意義指令”的數量。 >>>More
來自使用者的內容:lisuyan210
讀者可能知道計算機是什麼以及它能做什麼。 但是你知道什麼是微型計算機嗎? “微機控制”這個術語在今天的各種裝置中總是被使用,那麼這個微機是什麼呢? 它與計算機有什麼關係,它與計算機有何不同? >>>More
電源電路為微控制器提供穩定的電源。
時鐘電路使用晶體振盪器和電容器為微控制器提供穩定的時鐘參考訊號。 >>>More