![]() |
兩個死循環,有用都是假的 |
010329 發表于 2021-10-3 10:37 你光是去掉了那兩個While(1) , 但是你整個程序 沒有while(1), 是只會跑一遍,然后就結束的,所以,也不會反復判斷按鍵的。 |
如果沒看到效果修改這句P2=a?P2<<1:P2>>1;為P2=a?P2>>1:P2<<1; |
還更正一點把if(a)刪除了 |
忘記初始化了,添加一句代碼P2=0;在無限循環外。 |
|
188610329 發表于 2021-10-3 01:43 您好 首先很感謝您的回帖,聽了您的建議后將左移和右移的while(1)去掉,單片機的效果還是沒法判斷s1鍵再次按下,不過我有些頭緒了,謝謝 |
你的通篇代碼,沒有S2……………… 按你的代碼看, S1按下后,會開始左移,并始終在左移代碼中循環,不出來。所以也不會再次判斷按鍵。 因為你用了 while(1) , 他代表的意義是 死循環。當代碼走到while(1), 就死在這個括號里了。 |