我自己重新编了一个按键输入的程序,发现一直死在while循环里面出不来,求高手帮忙!

2019-07-20 20:54发布

我自己重新编写了教程里面的按键输入实验,只将前两种判断改成调用两个函数,调用的函数里面我已经设置了入口参数啊,当判断是WKUP_PRES时yes=1,然后转到调用的函数一直执行while(led==1)下面的语句,当有其他按键按下时yse=0就可以跳出while(led==1)这个循环了啊,为什么会死在那里呢?附件里面有我的程序,希望哪位高手帮我看看怎么能实现判断是WKUP_PRES时就一直调用那个函数,当按到其他键时就执行其他的语句。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
ianhom
1楼-- · 2019-07-20 21:14
 精彩回答 2  元偷偷看……
tansuozhe611
2楼-- · 2019-07-21 02:04
 精彩回答 2  元偷偷看……
Electronic
3楼-- · 2019-07-21 04:05
你都在死循环了怎么跳出来检测?
Electronic
4楼-- · 2019-07-21 09:37
你都在死循环了怎么跳出来检测?
tansuozhe611
5楼-- · 2019-07-21 10:20
ianhom 发表于 2016-8-7 13:34
在你的while(led==1)中,不存在按键检测的操作,所以led的值不会发生改变,led==1将会一直成立,所以会一 ...

非常感谢!你的建议建议非常有用,还有个问题,要是不用中断能实现我的想法吗?
ianhom
6楼-- · 2019-07-21 12:35
因为你的while(led == 1)中有延时,所以处理起来要麻烦一点点:
1、裸奔的环境下弄个状态机,把while(led == 1)中的操作分成几个状态:delay状态,控LED亮状态;控LED灭状态,这样相应的操作就是插入到外层的while(1)中,就可以检查按键状态。
2、上个事件驱动的调度内核+PT协程
3、上个rtos(ucos、freertos),分成几个任务可以实现

一周热门 更多>