两个死循环,有用都是假的 |
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), 就死在这个括号里了。 |