欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 關(guān)于單片機(jī)LED流水燈延時函數(shù)代碼分析 [打印本頁]

作者: 愛學(xué)習(xí)的小郎君    時間: 2023-2-1 22:49
標(biāo)題: 關(guān)于單片機(jī)LED流水燈延時函數(shù)代碼分析
為什么要加一個循環(huán),循環(huán)里的xms每次減1是干嘛的

作者: man1234567    時間: 2023-2-2 08:44
代碼寫的比較清奇,貌似非一般經(jīng)典。
不減 1 大概率進(jìn)入死循環(huán)延時成凝時。
作者: xianfajushi    時間: 2023-2-2 09:14
在C語言中非0即真所以不寫判斷式==比如要判斷等于2不循環(huán)則要寫判斷式while(xms<2)這樣值等于2就退出循環(huán)了,所有計數(shù)循環(huán)要么++要么--,本例要結(jié)束計數(shù)循環(huán)就用--。
作者: wulin    時間: 2023-2-2 10:02


作者: zhuls    時間: 2023-2-2 11:04
xianfajushi 發(fā)表于 2023-2-2 09:14
在C語言中非0即真所以不寫判斷式==比如要判斷等于2不循環(huán)則要寫判斷式while(xms

用++也行~~

如果XMS=50,--運(yùn)行50次循環(huán),++則int(65536-50)次循環(huán)。一個是下計數(shù),一個是上計數(shù)而已。
但原則上不用++,而是用--的道理是因為在匯編里有“減1為0跳轉(zhuǎn)”的指令(DJZ),而沒有“加一為0跳轉(zhuǎn)”。
這樣編譯時會節(jié)省點空間。

個人見解
作者: zhuls    時間: 2023-2-2 11:14
xms每減1,就運(yùn)行一次內(nèi)鉗的2級循環(huán) xms(i(j))。如果所有指令都是1T,這個延時約為(2*199*xms)/Fosc時間。調(diào)用與返回不算在其內(nèi)
作者: mtt661    時間: 2023-2-2 11:43
xms如果不減1,那么就永遠(yuǎn)不會退出while循環(huán),
作者: ldc2000    時間: 2023-2-2 15:39
wulin 發(fā)表于 2023-2-2 10:02

大神,那個_nop_()是啥意思?為什么要加,直接增加下面ij數(shù)值不行嗎
作者: wjq0312    時間: 2023-2-2 17:34
不減1,就會一直卡在這里循環(huán),出不去了,然后后面的程序就都不會運(yùn)行了。加了減1,每運(yùn)行一次這里面的代碼都會減1,直到減到0,就能跳出這個函數(shù)了。然后就能運(yùn)行后面的代碼了。
作者: 我也喜歡    時間: 2023-2-2 19:34
ldc2000 發(fā)表于 2023-2-2 15:39
大神,那個_nop_()是啥意思?為什么要加,直接增加下面ij數(shù)值不行嗎

多一個指令周期,使延時更準(zhǔn)確!
作者: 名字不是重點    時間: 2023-2-2 19:37
wjq0312 發(fā)表于 2023-2-2 17:34
不減1,就會一直卡在這里循環(huán),出不去了,然后后面的程序就都不會運(yùn)行了。加了減1,每運(yùn)行一次這里面的代碼 ...

一直加1,溢出不就回到0了?咋就不能跳出呢?不明白。
作者: 君工創(chuàng)    時間: 2023-2-2 20:15
減1一直減到0就等于設(shè)定的時間值并且退出。




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1