ch423读按键输入的优化

现在用ch423度按键输入,我采用的是oc15作为中断,系统在中断函数中发送IIC指令读取IO7-IO0的值。然后再主循环中判断IO7-IO0是哪个按键。调试下来发现按键经常读不到,要按好几次可以读到一次。大家用ch423读取按键都是 怎么做的,有什么好的优化方法吗

此中断产生前提是检测到IO7~IO0 引脚输入与事先写入IO7~IO0 引脚的输出寄存器的数据不同。

撤销中断也是通过修改输出寄存器。

按键过程中,示波器检测OC15电平变化是否正常。


                           

此中断产生前提是检测到IO7~IO0 引脚输入与事先写入IO7~IO0 引脚的输出寄存器的数据不同。

撤销中断也是通过修改输出寄存器。

按键过程中,示波器检测OC15电平变化是否正常。

                       

OC15电平我后面再测一下,我是断电调试发现每次是可以进中断的。按照这种中断机制,那最好是按键输入之后,中断里面马上控制IO7-IO0的值复位,防止按钮松开又会发生中断?


建议默认无按键情况写FF(内部有上拉)。有按键按下时,必然有中断,进入中断做记录,并修改输出端口,撤销中断,等到抬起后,仍会产生中断,根据记录值可以知道一次完整的按下抬起过程,修改输出端口,撤销中断。8个端口统一处理。


只有登录才能回复,可以选择微信账号登录