欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
看不懂毫秒的單片機延時程序,為什么不能這樣(我的想法)
[打印本頁]
作者:
ylthpl
時間:
2023-2-10 11:30
標題:
看不懂毫秒的單片機延時程序,為什么不能這樣(我的想法)
void delay_ms(u16 ms)
{
u16 i,j;
for(i=ms;i>0;i--);
for(j=110;j>0;j--);
}
我的想法:
void delay_ms(u16 ms)
{
while(us--);
}
作者:
ylthpl
時間:
2023-2-10 11:31
void delay_ms(u16 ms)
{
u16 i,j;
for(i=ms;i>0;i--);
for(j=110;j>0;j--);
}
我的想法:
void delay_ms(u16 ms)
{
while(ms--);
}
作者:
a185980800
時間:
2023-2-10 12:19
這到微秒級了
作者:
ldc2000
時間:
2023-2-10 12:53
ylthpl 發表于 2023-2-10 11:31
void delay_ms(u16 ms)
{
u16 i,j;
那個U16你要是定義成長整型到是可以。
不考慮浪費資源和每次延時都得敲一堆數字的話,而且你這里的MS代表微秒
作者:
munuc_w
時間:
2023-2-10 14:29
軟件延時是不準的,是根據執行的指令周期計算延時時間,這要看編譯后的匯編指令。
作者:
yxtao
時間:
2023-2-10 15:52
這種延時是要看硬件來估算的,j=110那行本就是估算的結果,你寫的那個估算這一步都沒有,單片機咋知道你要延時多久
作者:
最后一個夏天1
時間:
2023-2-10 16:28
因為那是軟件延時,人家那是通過計算次才得出來的,傳入參數就可以得到粗略的延時。你的想法只是單純延時
作者:
Hephaestus
時間:
2023-2-10 16:55
沒人發現第一個for語句后面多寫了一個;導致延遲根本就不對嗎?
作者:
coody_sz
時間:
2023-2-10 22:02
樓主不理解一個循環的時間。
作者:
hjc5035
時間:
2023-2-11 09:41
void delay_ms(u16 ms)
{
u16 i,j;
for(i=ms;i>0;i--) //;
for(j=110;j>0;j--);
}
這才是ms毫秒的延時
這個延時是不是很精確取決于編譯器將C語言轉換成匯編后的匯編語言情況,還有時鐘精確度,晶振一般精度高,RC精度要低。
作者:
Marconi工作室
時間:
2023-2-11 18:44
可以,數據有范圍的
作者:
qsssuv
時間:
2023-2-11 19:41
不是說變量取名叫ms,它減1就真的是過去1ms了,哈哈
作者:
cheney03
時間:
2023-2-13 09:28
void delay_ms(u16 ms)
{
u16 i,j;
for(i=ms;i>0;i--);
for(j=110;j>0;j--);
}
這個是軟件延時,要根據MCU的時機器周期計算。
u16的范圍是0~65535,若ms為1ms,則最大可延時0~65535ms。
void delay_ms(u16 ms)
{
while(us--);
}
這個程序也有錯,兩個參數ms,us。若us為1us,則最大可延時0~65535us。
延時時間大于66ms,這個程序就不通用了,第一個程序也便于理解
精確延時請用定時器
作者:
ankangyu
時間:
2023-2-17 14:02
機械延時,兩個for嵌套更精準。
作者:
ylthpl
時間:
2023-3-4 16:48
你們都好厲害我應該懂了
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1