熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
|
發(fā)布時(shí)間: 2020-8-14 23:02
正文摘要:新人請(qǐng)教一下 請(qǐng)問這段代碼哪里有錯(cuò)誤 我用debug運(yùn)行了一下發(fā)現(xiàn)箭頭一直在if(cnt>=500)這行 在群里問了沒有得到滿意的解答 請(qǐng)問有沒有大佬能告知一下是哪里出錯(cuò)了 |
ベアトリス 發(fā)表于 2020-8-15 23:34 啊,我看錯(cuò)了 |
disorder 發(fā)表于 2020-8-16 12:43 #include<reg52.h> sbit ADDR0 = P1^0; sbit ADDR1 = P1^1; sbit ADDR2 = P1^2; sbit ADDR3 = P1^3; sbit ENLED = P1^4; 應(yīng)該沒問題吧 |
| 看上去沒啥大問題 你的P1和數(shù)碼管是怎么接的? |
| while (表達(dá)式),表達(dá)式始終為true,所以一直循環(huán) |
|
一直在中斷函數(shù)里循環(huán) |
青桑葉 發(fā)表于 2020-8-15 10:11 請(qǐng)問大佬我中斷哪里寫錯(cuò)了 |
panzishi123456 發(fā)表于 2020-8-15 11:17 unsigned int cnt不是0到65525嗎? |
藍(lán)魄 發(fā)表于 2020-8-15 08:16 我中斷應(yīng)該設(shè)置的是2ms進(jìn)一次(不知道大佬能不能看一下代碼) 但我debug運(yùn)行時(shí)就一直指在if(cnt>=500)這行 我數(shù)碼管也是第一個(gè)只在閃爍 |
| 好像一直在中斷函數(shù)里循環(huán),沒跳回去 |
| cnt有符號(hào),正數(shù)范圍不能超255 |
| 死循環(huán)中斷500次才到if里面的程序,挑不出來 |
| 一直中斷沒出來.供參考 |
| 說不定你的cnt 定義的是 8bit的變量 怎么可能大于500 |
| 因?yàn)閕f(cnt>=500)在死循環(huán)while(1)里,所以你單步執(zhí)行要中斷500次才能進(jìn)入到if里面的程序,所以cnt在500之前就會(huì)一直在判斷,所以就一直在if這里,而中斷會(huì)使程序跳轉(zhuǎn)到中斷函數(shù),至于單步多少次就算你的中斷計(jì)算次數(shù)了 |
Powered by 單片機(jī)教程網(wǎng)