关于按键问题

2020-01-30 13:36发布

main()
{
    init();
    while(1)
    {
          switch(key_number)
          case 1:opition();
          case 2:action();
    }
}
void action()
{
      switch(key_number)
      case 1:a();
      case 2:b();
}

我想做一个分级的菜单,比如我按2 然后会跳入action的函数。但是我遇到个情况就是,当按2了  然后直接跳入b()的函数去了。
我想先跳进action里  然后在判断按键,求大神帮忙下。。感谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
26条回答
芯灵
1楼-- · 2020-01-31 16:10
你这段代码的问题是进入action();后keynumber的值没有被刷新(始终是2),进入action();后应该延时然后重新读取keynumber的值。
这仅仅是一个…猜想…
wangzeyu315
2楼-- · 2020-01-31 21:06
jiangkexiaozhen 发表于 2013-5-11 17:08
小白说一句,那个keynumber是怎么处理的,看看有错没

我是把按键管脚直接连接到 51单片机的中断函数了,如果有按键按下 HD7279读出的数值就是key_number
wangzeyu315
3楼-- · 2020-02-01 00:19
芯灵 发表于 2013-5-11 17:28
你这段代码的问题是进入action();后keynumber的值没有被刷新(始终是2),进入action();后应该延时然后重新 ...

- - 这个猜想貌似对。。但是怎么再重新读数值呢。。
芯灵
4楼-- · 2020-02-01 03:35
 精彩回答 2  元偷偷看……
weldking
5楼-- · 2020-02-01 09:30
你的按键处理判断有问题
wangzeyu315
6楼-- · 2020-02-01 15:02
芯灵 发表于 2013-5-11 18:48
如果你用的是中断,再设两个变量n=0、m,中断里加一句n=~n; ,然后
void action()
{    m=n;

额 好 我试下 谢谢

一周热门 更多>