[問題] 基本作業問題,附程式碼(急問)

看板C_and_CPP (C/C++)作者 (-M-)時間16年前 (2010/01/07 22:56), 編輯推噓2(209)
留言11則, 7人參與, 最新討論串1/1
現在我的問題是在 當K2=0後,執行到still_2他會一直在那個迴圈 要按電路RESET才能執行K1=0,要如何改才能不用在自己按RESET 直接可以連續動作,我想到把主程式丟到每個副程式後面 讓他K2=0跳進副程式後,一直在迴圈裡又執行K1=0 又跳到另個副程式 不知道這樣行不行的通,還是有其他的方法可以解決 程式碼: http://nopaste.info/37616118a3.html #include <reg51.h> sbit m1 = P1^1; sbit m2 = P1^2; sbit k1 = P2^0; sbit k2 = P2^1; sbit k3 = P2^2; sbit k4 = P2^3; ---------------------------- delay(int d) { int i,j ; for(i=0;i<d;i++) for(j=0;j<30;j++); } ---------------------------- still() { while(1) { m1= 0; m2= 0; delay(800); m2= 1; delay(150); } } ---------------------------- still_2() { while(1) { m1= 0; m2= 0; delay(100); m2= 1; delay(800); } } ---------------------------- still_3() { while(1) { m1= 1; m2= 0; delay(800); m2= 1; delay(150); } } ---------------------------- still_4() { while(1) { m1= 1; m2= 0; delay(100); m2= 1; delay(800); } } ---------------------------- void main() { still(); } if(k2==0) { still_2(); } if(k3==0) { still_3(); } if(k4==0) { still_4(); } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.134.34.219

01/08 10:34, , 1F
超傷眼
01/08 10:34, 1F

01/08 13:34, , 2F
同意樓上...
01/08 13:34, 2F

01/08 15:03, , 3F
我的眼睛說:「可不可以換另外一篇文章?」︿_︿|||
01/08 15:03, 3F

01/08 17:28, , 4F
我不知道怎樣會比較好看....
01/08 17:28, 4F

01/08 17:38, , 5F
學一下程式碼縮排吧, 照理說學習書上的程式碼應該也都是
01/08 17:38, 5F

01/08 17:38, , 6F
有做好縮排的, 看一下人家怎麼做的吧@_@"
01/08 17:38, 6F

01/08 17:39, , 7F
另外, 置底有可以貼code的網頁也可以利用:)
01/08 17:39, 7F
※ 編輯: GeroGero 來自: 125.231.211.165 (01/09 00:06)

01/09 01:37, , 8F
偷懶的作法 讓全部都是interrupt service routine
01/09 01:37, 8F

01/09 01:38, , 9F
不然就是透過timer以round robin的方式去儲存狀態/叫用
01/09 01:38, 9F

01/09 04:34, , 10F
呃...不太懂 因為剛接觸...
01/09 04:34, 10F

01/09 09:17, , 11F
改變while的條件,並且在裡面呼叫你要的函式就好了吧
01/09 09:17, 11F
文章代碼(AID): #1BHVOm4u (C_and_CPP)
文章代碼(AID): #1BHVOm4u (C_and_CPP)