用C8051F380开发的轨迹球,有左、中、右三个按键。每次按下任一按键,电脑无响应,需再按下另一按键后,之前的按键才有响应。
经测试,正确的操作姿势应该是:每按下一个键后,上报一次USB信息,松开后再上报一次(即告诉上位机此键已经松开)。
所以,程序里的逻辑应该是:每当按键的状态有变化,就上报一次按键状态。我在程序中是在20ms一次的定时器中断中判断按键是否变化(20ms中断中还计算了轨迹球的运动问题),这样也相当于进行了去抖。
本文介绍了一款使用C8051F380开发的轨迹球设备,在使用过程中遇到的按键响应延迟问题。该问题表现为按下按键后,电脑没有立即响应,直到按下另一个按键时才触发前一个按键的操作。通过调整程序逻辑,在按键状态改变时即时上报状态解决了这一问题。
用C8051F380开发的轨迹球,有左、中、右三个按键。每次按下任一按键,电脑无响应,需再按下另一按键后,之前的按键才有响应。
经测试,正确的操作姿势应该是:每按下一个键后,上报一次USB信息,松开后再上报一次(即告诉上位机此键已经松开)。
所以,程序里的逻辑应该是:每当按键的状态有变化,就上报一次按键状态。我在程序中是在20ms一次的定时器中断中判断按键是否变化(20ms中断中还计算了轨迹球的运动问题),这样也相当于进行了去抖。
571
1060
1317

被折叠的 条评论
为什么被折叠?