熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
|
發(fā)布時(shí)間: 2020-9-29 16:46
正文摘要:大家好呀,我是想在這個(gè)延時(shí)里當(dāng)t為0時(shí)跳出,所以加了break,但是編譯錯(cuò)誤,把break屏蔽了就可以通過,為什么呢? |
|
改成這樣, 編譯不會錯(cuò)誤 void delay_x2ms(unsigned int i) { unsigned char j, k; for(i; i>0;i--) for(j=4;j>0;j--) for(k=248;k>0;k--) //; 后面多了個(gè)分號 if(f==1) { t=0; break; } } |
|
你定義的i為參數(shù)。 參數(shù)應(yīng)該賦給j或k, 這樣才是正確for語句用法 |
| 所以來這里問咯 |
| 可以看一下循環(huán),這個(gè)好像在switch也是在括號外面吧!其次在if能用break嗎?留個(gè)問題借樓 |
| 先看下C語言for循環(huán) |
| if一般沒有帶break的,你的k循環(huán)不受if控制,if在這里不是for循環(huán)內(nèi)嵌語句.一句話,邏輯沒理清. |
| 說說原因 |
| 開環(huán)和閉環(huán)你應(yīng)該沒有搞清楚吧 |
| f是全局變量吧? 在定時(shí)器中斷還是外部中斷里面被改變? if語句沒有起到延遲的限制作用,for循環(huán)執(zhí)行完后,無論if判斷結(jié)果如何,都會退出這個(gè)延遲函數(shù)。 if判斷只能判斷f的值,而去改變t的值。 多看看c語言基礎(chǔ)知識吧。 |
man1234567 發(fā)表于 2020-9-29 17:25 詳細(xì)說下,謝謝啦 |
| 這個(gè)延時(shí)是個(gè)閉環(huán),如果搞條件的話放在外面。 |
| 說錯(cuò)了,是當(dāng)f為1是跳出這個(gè)延時(shí) |
Powered by 單片機(jī)教程網(wǎng)