用C8051F380开发的轨迹球,有左、中、右三个按键。每次按下任一按键,电脑无响应,需再按下另一按键后,之前的按键才有响应。
经测试,正确的操作姿势应该是:每按下一个键后,上报一次USB信息,松开后再上报一次(即告诉上位机此键已经松开)。
所以,程序里的逻辑应该是:每当按键的状态有变化,就上报一次按键状态。我在程序中是在20ms一次的定时器中断中判断按键是否变化(20ms中断中还计算了轨迹球的运动问题),这样也相当于进行了去抖。
用C8051F380开发的轨迹球,有左、中、右三个按键。每次按下任一按键,电脑无响应,需再按下另一按键后,之前的按键才有响应。
经测试,正确的操作姿势应该是:每按下一个键后,上报一次USB信息,松开后再上报一次(即告诉上位机此键已经松开)。
所以,程序里的逻辑应该是:每当按键的状态有变化,就上报一次按键状态。我在程序中是在20ms一次的定时器中断中判断按键是否变化(20ms中断中还计算了轨迹球的运动问题),这样也相当于进行了去抖。