OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5048|回复: 7

请教 关于mini板键盘扫描程序里的按键松开标志问题

[复制链接]

86

主题

417

帖子

0

精华

高级会员

Rank: 4

积分
781
金钱
781
注册时间
2013-2-20
在线时间
0 小时
发表于 2013-4-26 09:24:56 | 显示全部楼层 |阅读模式
u8 KEY_Scan(void)

 static u8 key_up=1;//按键按松开标志 
 JTAG_Set(JTAG_SWD_DISABLE);
 if(key_up&&(KEY0==0||KEY1==0||KEY2==1))
 {
  delay_ms(10);//去抖动
  key_up=0;
  if(KEY0==0)
  {
   JTAG_Set(SWD_ENABLE);
   return 1;
  }
  else if(KEY1==0)
  {
   JTAG_Set(SWD_ENABLE);
   return 2;
  }
  else if(KEY2==1)
  {
   JTAG_Set(SWD_ENABLE);
   return 3;
  }
 }else if(KEY0==1&&KEY1==1&&KEY2==0)key_up=1;     
 JTAG_Set(SWD_ENABLE);
 return 0;// 无按键按下
}

请问下:
1、key_up的作用是不是为了防止按键被按下还未松手时 键盘程序被多次扫描啊?
2、key_up能起到松手消抖的作用吗?
乐于思考,敢于请教;问人不累,诲人不倦!本人CSDN博客:http://blog.csdn.net/dcx1205 学习嵌入式的同学不要错过啊!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-4-26 10:31:35 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

86

主题

417

帖子

0

精华

高级会员

Rank: 4

积分
781
金钱
781
注册时间
2013-2-20
在线时间
0 小时
 楼主| 发表于 2013-4-26 10:46:54 | 显示全部楼层
请问下 min板能否实现 不用定时器扫描矩阵键盘  而是用中断的方法?我的4*4矩阵键盘是接在了PB口的低8位,能否实现一旦有键被按下  则进入中断服务   对矩阵键盘进行一次扫描?  这样扫描效率应该更高!能的话 可以提供下思路吗?
乐于思考,敢于请教;问人不累,诲人不倦!本人CSDN博客:http://blog.csdn.net/dcx1205 学习嵌入式的同学不要错过啊!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-4-26 14:06:54 | 显示全部楼层
回复【3楼】可乐虎:
---------------------------------
如果硬件没特殊设计的话,需要4个外部中断,有点不划算.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

86

主题

417

帖子

0

精华

高级会员

Rank: 4

积分
781
金钱
781
注册时间
2013-2-20
在线时间
0 小时
 楼主| 发表于 2013-4-26 16:25:55 | 显示全部楼层
请问刘老师有没有好的松手消抖的思路?那种利用delay函数和while死循环的方法除外……
乐于思考,敢于请教;问人不累,诲人不倦!本人CSDN博客:http://blog.csdn.net/dcx1205 学习嵌入式的同学不要错过啊!
回复 支持 反对

使用道具 举报

5

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
158
金钱
158
注册时间
2012-8-31
在线时间
15 小时
发表于 2013-6-29 22:59:29 | 显示全部楼层
回复【5楼】可乐虎:
---------------------------------
同问。我也在构思怎么扫描按键,去抖,可以多键,可以长按。
回复 支持 反对

使用道具 举报

38

主题

2061

帖子

6

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3273
金钱
3273
注册时间
2012-1-16
在线时间
37 小时
发表于 2013-6-30 10:22:52 | 显示全部楼层
回复【5楼】可乐虎:
---------------------------------
可以利用状态机
站在巨人的肩膀上不断的前进。。。
回复 支持 反对

使用道具 举报

86

主题

417

帖子

0

精华

高级会员

Rank: 4

积分
781
金钱
781
注册时间
2013-2-20
在线时间
0 小时
 楼主| 发表于 2013-7-12 20:38:26 | 显示全部楼层
回复【7楼】xiaoyan:
---------------------------------
嗯 谢谢 已搞定!
乐于思考,敢于请教;问人不累,诲人不倦!本人CSDN博客:http://blog.csdn.net/dcx1205 学习嵌入式的同学不要错过啊!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-17 22:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表