按键扫描的一些疑惑,求指教!!!

2019-03-24 20:25发布

在项目中需要一个8*16的矩阵键盘,扫描得出键值之后通过串口发送,mcu用的是xMega,当然这个无关紧要,中间会有串口接收中断。

现在发现的现象是:按键迟滞,按键丢失

我想考虑的是:

1.按键扫描是用哪种方式好?
书本上用的 是   读取按键---延迟消抖---再次读取----得出键值
还有一种是   定时器中断(2ms)--读键值,计数---连续5次为同一键值 则认为有按键按下
还有一种反转法  这里按键太多 不太合适就不考虑了。

2.按键扫描定时器中断会不会与串口接收中断函数冲突?

如果串口连续接收,会导致按键丢失吗?

3.实验测试出现过一些奇怪现象,比如在输入  dianzi 时   会出现   diadnzi  类似这样的在后面出现前面键值重复,此现象还未考虑出原因  求教! 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
damiaa
2019-03-25 06:16
1.按键扫描是用哪种方式好?
  定时器中断(2ms)--读键值,计数---连续N次为同一键值 则认为有按键按下。不过还要考虑是上升还是下降缘,要处理。

2.按键扫描定时器中断会不会与串口接收中断函数冲突?

不会。

3.实验测试出现过一些奇怪现象,比如在输入  dianzi 时   会出现   diadnzi  类似这样的在后面出现前面键值重复,此现象还未考虑出原因  求教!
那要查查。

一周热门 更多>