找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1992|回復(fù): 15
打印 上一主題 下一主題
收起左側(cè)

這單片機(jī)程序如果第二個(gè)for里面b>0改為>=0就無(wú)法正常實(shí)現(xiàn)LED的閃爍?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1052650 發(fā)表于 2022-11-18 15:37 來(lái)自觸屏版 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
新手菜鳥,大佬勿噴。
請(qǐng)問下面這串代碼如果第二個(gè)for里面b>0改為>=0就無(wú)法正常實(shí)現(xiàn)LED的閃爍是什么原因?麻煩各位大佬給個(gè)提示。謝謝了

51hei.png (85.55 KB, 下載次數(shù): 51)

51hei.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:883242 發(fā)表于 2022-11-18 19:42 | 只看該作者
b是unsigned char,永遠(yuǎn)大于等于0,這似乎是小學(xué)數(shù)學(xué)問題。
回復(fù)

使用道具 舉報(bào)

板凳
ID:1051394 發(fā)表于 2022-11-18 19:59 | 只看該作者
修改a和b的類型為整數(shù)就可以了
回復(fù)

使用道具 舉報(bào)

地板
ID:1052694 發(fā)表于 2022-11-18 20:07 | 只看該作者
unsigned char表示0~255,永遠(yuǎn)大于等于0
回復(fù)

使用道具 舉報(bào)

5#
ID:1044091 發(fā)表于 2022-11-18 20:22 | 只看該作者
unsigned char b,當(dāng)最后一步b=0時(shí),0=0,for條件一直為真,但b-1又不存在,所以進(jìn)入死循環(huán)跳不出來(lái)了。
回復(fù)

使用道具 舉報(bào)

6#
ID:883242 發(fā)表于 2022-11-18 20:52 | 只看該作者
ningsy 發(fā)表于 2022-11-18 20:22
unsigned char b,當(dāng)最后一步b=0時(shí),0=0,for條件一直為真,但b-1又不存在,所以進(jìn)入死循環(huán)跳不出來(lái)了。

誰(shuí)告訴你b-1不存在?b-1=255這么簡(jiǎn)單的問題都不知道嗎?
回復(fù)

使用道具 舉報(bào)

7#
ID:1052650 發(fā)表于 2022-11-18 20:56 | 只看該作者
好了,迷糊了我
回復(fù)

使用道具 舉報(bào)

8#
ID:824490 發(fā)表于 2022-11-19 14:07 | 只看該作者

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

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

使用道具 舉報(bào)

9#
ID:1052650 發(fā)表于 2022-11-20 00:51 來(lái)自觸屏版 | 只看該作者
名字不是重點(diǎn) 發(fā)表于 2022-11-19 14:07
別迷糊~~6樓道 出真相了:

不就是要數(shù)組逆向嗎?

感謝你
回復(fù)

使用道具 舉報(bào)

10#
ID:624769 發(fā)表于 2022-11-20 01:17 | 只看該作者
名字不是重點(diǎn) 發(fā)表于 2022-11-19 14:07
別迷糊~~6樓道 出真相了:

不就是要數(shù)組逆向嗎?

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

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

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

使用道具 舉報(bào)

11#
ID:227393 發(fā)表于 2022-11-20 01:43 來(lái)自觸屏版 | 只看該作者
因?yàn)閡nsignrd char 包括0-255,所以等于0是肯定成立的,所以永遠(yuǎn)不會(huì)結(jié)束for循環(huán),也就是變成死循環(huán)了!
回復(fù)

使用道具 舉報(bào)

12#
ID:883242 發(fā)表于 2022-11-20 03:04 | 只看該作者
本帖最后由 Hephaestus 于 2022-11-20 18:19 編輯
188610329 發(fā)表于 2022-11-20 01:17
暈啊…… 有必要繞路走么?

for(b=8;b>0;)

這個(gè)論壇真奇怪,10樓偷偷改了自己的帖子居然沒有顯示編輯時(shí)間。
回復(fù)

使用道具 舉報(bào)

13#
ID:624769 發(fā)表于 2022-11-20 16:19 | 只看該作者
Hephaestus 發(fā)表于 2022-11-20 03:04
敲黑板!
你的代碼缺[]

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

為什么  你[]  里缺個(gè) b 可以發(fā)出來(lái).
為什么人家  [7-b]  也可以發(fā)出來(lái).
唯獨(dú) []  里面只放一個(gè)字母 不管是 i 或者 b 都發(fā)不出來(lái)?

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

使用道具 舉報(bào)

14#
ID:77589 發(fā)表于 2022-11-21 10:03 | 只看該作者
你b的類型是unsigned char,如果結(jié)束條件是b>=0,在b==0時(shí)條件成立,當(dāng)b再減1時(shí),告訴你此時(shí)b就變成了255了,b>=0這個(gè)條件還是成立,但是此時(shí)再繼續(xù)操作,數(shù)組就已經(jīng)越界了,這是一個(gè)致命的錯(cuò)誤。。。
回復(fù)

使用道具 舉報(bào)

15#
ID:77589 發(fā)表于 2022-11-21 10:06 | 只看該作者
sgq657785 發(fā)表于 2022-11-20 01:43
因?yàn)閡nsignrd char 包括0-255,所以等于0是肯定成立的,所以永遠(yuǎn)不會(huì)結(jié)束for循環(huán),也就是變成死循環(huán)了!

如果是死循環(huán),LED還是要閃爍!
所以不是死循環(huán),是出現(xiàn)了數(shù)組越界的致使錯(cuò)誤!
回復(fù)

使用道具 舉報(bào)

16#
ID:77589 發(fā)表于 2022-11-21 10:09 | 只看該作者
ningsy 發(fā)表于 2022-11-18 20:22
unsigned char b,當(dāng)最后一步b=0時(shí),0=0,for條件一直為真,但b-1又不存在,所以進(jìn)入死循環(huán)跳不出來(lái)了。

b的類型是unsigned char,如果結(jié)束條件是b>=0,在b==0時(shí)條件成立,當(dāng)b再減1時(shí),告訴你此時(shí)b就變成了255了,b>=0這個(gè)條件還是成立,但是此時(shí)再繼續(xù)操作,數(shù)組就已經(jīng)越界了,這是一個(gè)致命的錯(cuò)誤。。。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表