看板 C_and_CPP 關於我們 聯絡資訊
我是用 uVision2 寫的跑馬燈程式 但我在寫一個跑馬燈程式的時候發現 他沒辦法重複的 round 就只有第一次成功的出現想要樣子 第二輪就完全沒東西 我寫的程式是這樣 #include <REG51F.H> #define uchar unsigned char #define uint unsigned int void Delay(uint dly); void Delayf(uint dlf); void main(void) { uchar i,j=0,k=0,m=0x80; uint l=1; while (1) { for (i=9; i>0; i--) { P2=m; P0=l; Delay(200); m>>=1; l<<=1; } } } void Delay(uint dly) { wait: dly--; if (dly!=0) goto wait; } void Delayf(uint dlf) { uint j; for (j=dlf; j>0; j--); } 我是想要達到這樣的結果 ○○○○○○○○ ○○○○○○○○ ●○○○○○○○ ○○○○○○○● ○●○○○○○○ ○○○○○○●○ ○○●○○○○○ ○○○○○●○○ ○○○●○○○○ ○○○○●○○○ ○○○○●○○○ ○○○●○○○○ ○○○○○●○○ ○○●○○○○○ ○○○○○○●○ ○●○○○○○○ ○○○○○○○● ●○○○○○○○ 循環 但是執行過一次之後,他就會消失了 我以為是迴圈的問題,但看了很久還是看不出哪裡有問題 因為還有其他段落,所以宣告了很多變數 ... 只有這一段會消失,請各位版友點一下 看了一個下午看不出來 = =" 我果然沒有寫程式的天分 ... 先謝謝各位大大了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.117.10.152
damody:m l 沒有設定到 10/03 16:42
bigpigbigpig:你的迴圈跑過一次以後,m 和 l 就陣亡了 10/03 17:22
bigpigbigpig:m=0x80;l=1;應放在 while (1)迴圈內 每一次都要重設 10/03 17:24
jayemshow:太感謝樓上的大大了,現在馬上來試試看 !! 10/03 19:44
jayemshow:可否請大大告知為什麼我的 m l 設在迴圈外會死掉嗎 ? 10/03 19:55
jayemshow:我想說照著 j 和 k 一樣定義應該是沒問題的 10/03 19:56
MaxHaru:因為">>"和"<<"是補0,0x80<<1是0x00,0x00>>1還是0x00 10/04 16:31