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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2264|回復: 15
收起左側

這單片機程序如果第二個for里面b>0改為>=0就無法正常實現LED的閃爍?

[復制鏈接]
ID:1052650 發表于 2022-11-18 15:37 來自觸屏版 | 顯示全部樓層 |閱讀模式
新手菜鳥,大佬勿噴。
請問下面這串代碼如果第二個for里面b>0改為>=0就無法正常實現LED的閃爍是什么原因?麻煩各位大佬給個提示。謝謝了
51hei.png
回復

使用道具 舉報

ID:883242 發表于 2022-11-18 19:42 | 顯示全部樓層
b是unsigned char,永遠大于等于0,這似乎是小學數學問題。
回復

使用道具 舉報

ID:1051394 發表于 2022-11-18 19:59 | 顯示全部樓層
修改a和b的類型為整數就可以了
回復

使用道具 舉報

ID:1052694 發表于 2022-11-18 20:07 | 顯示全部樓層
unsigned char表示0~255,永遠大于等于0
回復

使用道具 舉報

ID:1044091 發表于 2022-11-18 20:22 | 顯示全部樓層
unsigned char b,當最后一步b=0時,0=0,for條件一直為真,但b-1又不存在,所以進入死循環跳不出來了。
回復

使用道具 舉報

ID:883242 發表于 2022-11-18 20:52 | 顯示全部樓層
ningsy 發表于 2022-11-18 20:22
unsigned char b,當最后一步b=0時,0=0,for條件一直為真,但b-1又不存在,所以進入死循環跳不出來了。

誰告訴你b-1不存在?b-1=255這么簡單的問題都不知道嗎?
回復

使用道具 舉報

ID:1052650 發表于 2022-11-18 20:56 | 顯示全部樓層
好了,迷糊了我
回復

使用道具 舉報

ID:824490 發表于 2022-11-19 14:07 | 顯示全部樓層

別迷糊~~6樓道 出真相了:

不就是要數組逆向嗎?
for(b=0;b<8;b++)
{
P2=~S[7-b];
delay();
}
這就逆向了。就這么簡單的。
回復

使用道具 舉報

ID:1052650 發表于 2022-11-20 00:51 來自觸屏版 | 顯示全部樓層
名字不是重點 發表于 2022-11-19 14:07
別迷糊~~6樓道 出真相了:

不就是要數組逆向嗎?

感謝你
回復

使用道具 舉報

ID:624769 發表于 2022-11-20 01:17 | 顯示全部樓層
名字不是重點 發表于 2022-11-19 14:07
別迷糊~~6樓道 出真相了:

不就是要數組逆向嗎?

暈啊…… 有必要繞路走么?

  1. for(b=8;b>0;)
  2. {
  3. b--;
  4. P2=~S[b];
  5. delay();
  6. }
復制代碼

不就好了? 何必一頭 做加法 一頭還要 再去減?
回復

使用道具 舉報

ID:227393 發表于 2022-11-20 01:43 來自觸屏版 | 顯示全部樓層
因為unsignrd char 包括0-255,所以等于0是肯定成立的,所以永遠不會結束for循環,也就是變成死循環了!
回復

使用道具 舉報

ID:883242 發表于 2022-11-20 03:04 | 顯示全部樓層
本帖最后由 Hephaestus 于 2022-11-20 18:19 編輯
188610329 發表于 2022-11-20 01:17
暈啊…… 有必要繞路走么?

for(b=8;b>0;)

這個論壇真奇怪,10樓偷偷改了自己的帖子居然沒有顯示編輯時間。
回復

使用道具 舉報

ID:624769 發表于 2022-11-20 16:19 | 顯示全部樓層
Hephaestus 發表于 2022-11-20 03:04
敲黑板!
你的代碼缺[]

這東西你敲黑板沒用, 要去敲管理員,

為什么  你[]  里缺個 b 可以發出來.
為什么人家  [7-b]  也可以發出來.
唯獨 []  里面只放一個字母 不管是 i 或者 b 都發不出來?

你要是真的在用心逛論壇,就會見怪不怪,或者,就算要敲也不是敲黑板了。
回復

使用道具 舉報

ID:77589 發表于 2022-11-21 10:03 | 顯示全部樓層
你b的類型是unsigned char,如果結束條件是b>=0,在b==0時條件成立,當b再減1時,告訴你此時b就變成了255了,b>=0這個條件還是成立,但是此時再繼續操作,數組就已經越界了,這是一個致命的錯誤。。。
回復

使用道具 舉報

ID:77589 發表于 2022-11-21 10:06 | 顯示全部樓層
sgq657785 發表于 2022-11-20 01:43
因為unsignrd char 包括0-255,所以等于0是肯定成立的,所以永遠不會結束for循環,也就是變成死循環了!

如果是死循環,LED還是要閃爍啊!
所以不是死循環,是出現了數組越界的致使錯誤!
回復

使用道具 舉報

ID:77589 發表于 2022-11-21 10:09 | 顯示全部樓層
ningsy 發表于 2022-11-18 20:22
unsigned char b,當最后一步b=0時,0=0,for條件一直為真,但b-1又不存在,所以進入死循環跳不出來了。

b的類型是unsigned char,如果結束條件是b>=0,在b==0時條件成立,當b再減1時,告訴你此時b就變成了255了,b>=0這個條件還是成立,但是此時再繼續操作,數組就已經越界了,這是一個致命的錯誤。。!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

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