瑞薩微控制器 4M晶振 二分頻 for i 1 i 105 i

2025-03-01 08:25:21 字數 4095 閱讀 8315

1樓:網友

瑞薩微控制器的乙個機器週期就是乙個時鐘週期,4m晶振兩分頻之後是2m,由此可列乙個算式1s/2000000*105=,換算成微秒就是微秒,這是理論時間,具體的時間會和這個時間有差異。

2樓:手機使用者

你這個語句具體有多少的延時要看你用的是什麼編譯器 ,在keil c中這個語句反彙編的程式很多哦 。。你可以通過反彙編視窗看在編譯成彙編有多少條指令,才可以計算出來,像for語句一般用在延時不是很精確的場合,很難精確的計算出它到底有多長時間。你要是想用精確的延時建議你使用。

while(){語句,這個我用過,它的延時可以很精確的計算出來。。。同樣你可以通過反彙編視窗看出它的彙編。

c:0x0000 020012 ljmp c:0012 2個機器週期。

2: void main(void)

c:0x0011 22 ret 2個機器週期。

這個是我在反彙編視窗看出它的彙編** 你計算以下就知道了 2+1+1+1+1+2+1+1+2+1+2+2=17*12/40= 就是說執行 乙個i=0時,包括函式的呼叫和返回要 i=n時它的值大概就是; 明白了吧。

3樓:匿名使用者

找本c的書應該不難找到答案。。。

4樓:舒心還坦率灬閨秀

還是用示波器看吧。

在微控制器程式設計中,12m晶振,延時1ms,常用for(i=0;i<120;i++);誰能幫我解釋一下,為什麼這個語句就是1ms?

5樓:網友

恩,誰說這個是1ms呢。呵呵不過你看加乙個也許是10個時鐘週期呢,然後120個大約就是1ms。精確定時使用定時器吧。

6樓:網友

這個沒有特別的標準,是根據指令週期累加的時間,然而現實情況就比較複雜,函式呼叫時間沒有考慮。

現在很多微控制器都流水作業,指令週期比傳統51短的多,而且受跳轉程式影響,跳轉後流水線作廢。

受中斷影響。

死等延時不是個好方法,移植性差。

微控制器裡面乙個閃爍的led電路程式不懂,求指教。for(i=0;i<120;i++);這個裡面的

7樓:神域

具體時間要看組合語言知道,那個for函式,只是讓cpu空執行幾個週期以達到延遲效果,精確的時間從c語言是看不出來的,如果要精準時間的話要用定時器做。

8樓:網友

delayms()是個粗略的毫秒級延時函式,所以程式的效果就是150毫秒改變一次led的亮滅,滅--150毫秒後---亮---150毫秒後---滅。

9樓:網友

延時函式 120 是for迴圈執行120次 目的是讓微控制器空執行大致1毫秒 然後while迴圈引數是150

這就是乙個延遲函式方法 會用就行。

c語言時間不是太準 看彙編能好看點 彙編指令有執行週期。

10樓:做而論道

c語言,和時間無關。

延時多少,只能慢慢實驗。

for(i=1;;i++)這裡面為什麼有兩個; 表示什麼

11樓:網友

for(i=1;;i++)表示i從1開始迴圈,每次遞增1,如果for中間沒有break;則一直迴圈下去。

12樓:gta小雞

缺少迴圈結束條件,需要在迴圈體內部新增判斷條件,否則會陷入死迴圈。

13樓:天下霸傲

不是 中間的部分被省略了,如果不寫,就是真,往下執行就行,其實是個死迴圈。

14樓:網友

第乙個是i=1;第二個是i<=某個數;

15樓:網友

我早就忘了該如何開心的笑了!

16樓:水德水相亭

是等價的。

將陣列裡值s[j]賦給s[i]然後i,j都自加。

for(i=1;i<100;i++) 中的 i++ 是什麼意思?

17樓:聽不清啊

i++在這裡就是i=i+1的意思。

用在別的地方,則是先取i的原值,進行語句規定的操作,取用結束後i=i+1

18樓:育知同創教育

i++的意思說每次迴圈進來i+1,迴圈100次列印就是i=100.

for(i=1;i<10;i++){for(j=1;j<=i;j++) 解釋一下這是什麼意思?

19樓:小夏在深圳

i++就是i自增1的意思。每次迴圈後i都會自動加1,直到i>=3時就退出迴圈。迴圈幾次,如分別是i=0,1,2,3,4,5時執行一次printf("a[%d]=%d",i,a[i]);

例項使用了巢狀迴圈輸出2~100之間的素數如下:

#!/usr/bin/python# -*coding: utf-8 -*

i = 2while(i < 100): j = 2

while(j <= (i/j)):if not(i%j): break

j = j + 1

if (j > i/j) :print i, " 是素數"

i = i + 1

print "good bye!"

20樓:陸舒傑

這是乙個巢狀的for迴圈。

執行順序:先執行第乙個for迴圈。

1)i=1i = 1也就是i從1開始。

2)i<10

i<10表示i的最大值要小於10,如果條件內成立,然後容執行第二個for迴圈。

第二個for迴圈。

1)j=12)j<=i

然後執行內部語句,執行完畢後實現j++,把第二個for迴圈完畢之後然後執行第乙個迴圈裡的i++,表示的是程式執行完畢i+1,也就是自加運算(自己加自己)

這樣第一次迴圈就結束了!

主要是你的**沒寫完全,大概意思就是這樣,希望幫助到你!

21樓:網友

巢狀迴圈。i值每次做自加運算,j都要從1自加到i

22樓:hello鴻雁

c# 外面的。

抄for迴圈控制。

行襲,裡面for迴圈控制列bai。

例子:for(int i=1;i<10;i++)答案。

du:列印乙個出zhi乙個正三dao角形。

for(i=1;i<10;i++){for(j=1;j<=i;j++)解釋一下這是什麼意思?

23樓:美麗世界的寵兒

這是雙重巢狀for迴圈。

語句。外層的for(i=1;i<10;i++)即i是迴圈變數,迴圈開始時,i賦值為1,且大迴圈從i=1至9共9次。

內層的迴圈變數為j,每次進入內迴圈時,j都被賦值為1,且迴圈次數為j=1至i。共i次。

簡單地說。開始幾次的迴圈變數如下:

i=1,j=1

i=2,j=1

i=2,j=2

i=3,j=1

i=3,j=2

i=3,j=3

i=4,j=1...

24樓:九雲火麒麟

這個是個c語言中常見的雙重for迴圈結構,主要就是先執行外層的for結構,之後在執行內層的for結構。

25樓:網友

迴圈45次,i=1時候j迴圈1次,i=2時j迴圈2ci。。。i=9時j迴圈9次。

我在學微控制器c語言,其中有延時語句,請問for(i=0;i<120;i++);這個語句執行用的時間是多少啊?

26樓:

那要看你的用的晶振是多大的,再算出來一條語句執行的時間*120就是這個延時程式執行的時間。

27樓:網友

用12mhz的晶振的話,其延時大概是1ms。其實for (i=0;i<124;i++)更接近1ms。

28樓:曉瀟蕭蕭

你可以用debug除錯,一步一步的看 看整個迴圈用去了多久的時間。

請教老師,51微控制器在12M晶振,C語言程式設計時,延時函式120次1ms(書本上是這樣的,不懂),是怎樣得來的

c的話其實時間沒有辦法完全定性地計算的 如果非得精確的話只能使用定時器了,或者彙編的也行不過時間要求精度不是很高的話使用下面的 就行了當時使用示波器把時間完全調準的,65536ms範圍內還是比較準的,已經可以滿足通常的要求了 include reg51.h 標頭檔案包含 巨集定義 define ui...

開關電源,STM32微控制器產生PWM控制MOS管通斷,這個如

不用太複雜,做簡單的。用adc功能測量電壓,然後根據電壓調整pwm的佔空比則可以了。直接比例演算法,不需要微積分。用stm32產生pwm訊號控制步進電機,頻率和佔空比怎麼弄啊,下面是我寫的程式,怎麼才能輸出波形 你這個是bai初始化程式,子程式可用定 du時器 中斷子程zhi序細分spwm,也可da...

微控制器晶振頻率為f 6MHz,現要用T0定時計數器在P1 0引腳產生1s的方波,試程式設計實現

系統中,沒有其它的應用,那麼,用查詢的方法,最簡單 org 0000h mov tmod,01h setb tr0 lp mov r2,5 wt mov th0,3ch mov tl0,0b0h jnb tf0,clr tf0 djnz r2,wt cpl p1.0 sjmp lpend org 0...