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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

關于單片機LED流水燈延時函數代碼分析

查看數: 2588 | 評論數: 11 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2023-2-1 22:49

正文摘要:

為什么要加一個循環,循環里的xms每次減1是干嘛的

回復

ID:965189 發表于 2023-2-2 20:15
減1一直減到0就等于設定的時間值并且退出。
ID:824490 發表于 2023-2-2 19:37
wjq0312 發表于 2023-2-2 17:34
不減1,就會一直卡在這里循環,出不去了,然后后面的程序就都不會運行了。加了減1,每運行一次這里面的代碼 ...

一直加1,溢出不就回到0了?咋就不能跳出呢?不明白。
ID:162622 發表于 2023-2-2 19:34
ldc2000 發表于 2023-2-2 15:39
大神,那個_nop_()是啥意思?為什么要加,直接增加下面ij數值不行嗎

多一個指令周期,使延時更準確!
ID:1022674 發表于 2023-2-2 17:34
不減1,就會一直卡在這里循環,出不去了,然后后面的程序就都不會運行了。加了減1,每運行一次這里面的代碼都會減1,直到減到0,就能跳出這個函數了。然后就能運行后面的代碼了。
ID:158391 發表于 2023-2-2 15:39

大神,那個_nop_()是啥意思?為什么要加,直接增加下面ij數值不行嗎
ID:1010435 發表于 2023-2-2 11:43
xms如果不減1,那么就永遠不會退出while循環,
ID:69038 發表于 2023-2-2 11:14
xms每減1,就運行一次內鉗的2級循環 xms(i(j))。如果所有指令都是1T,這個延時約為(2*199*xms)/Fosc時間。調用與返回不算在其內
ID:69038 發表于 2023-2-2 11:04
xianfajushi 發表于 2023-2-2 09:14
在C語言中非0即真所以不寫判斷式==比如要判斷等于2不循環則要寫判斷式while(xms

用++也行~~

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

個人見解
ID:213173 發表于 2023-2-2 10:02

ID:332444 發表于 2023-2-2 09:14
在C語言中非0即真所以不寫判斷式==比如要判斷等于2不循環則要寫判斷式while(xms<2)這樣值等于2就退出循環了,所有計數循環要么++要么--,本例要結束計數循環就用--。
ID:584814 發表于 2023-2-2 08:44
代碼寫的比較清奇,貌似非一般經典。
不減 1 大概率進入死循環延時成凝時。

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表