|
|
[心得]
站在鼠标主控的角度看刷新率,
16
9429
楼主
最近都在写鼠标的主控程序,懂了很多东西,来给大家讲一下在鼠标主控这端看刷率的问题。
所有的USB通信都是由电脑这端发起的,通俗来说就是:我叫你的时候,你给我资料;我没叫你的时候,你给我一边凉快去。
而鼠标主控这边处理USB的请求,是通过中断来完成的,就是:当发现有USB请求,中断,处理USb请求的数据,该发的发, 该接收的接收,搞完,继续主程序的循环。
中断的处理称为Interrupt Service Routine, ISR, 如下图
假设电脑端的USB请求频率为125hz, 就是大概10ms请求一次数据,那么鼠标主控这边就要每10ms准备好要发的数据,比如说移动的距离。那么这就要求ISR+main LOOP(主循环,为什么循环? 因为每秒都是在做很多同样的事情。。。。)的时间要小于或等于10ms。
现在大家明白了,为什么电脑这边请求的速度改了就可以更快吧。
这也是看情况的,比如说有的鼠标主控很强, 改成1000hz的时候, 它要在1ms内处理好ISR 和main loop, 它表示压力不大,
有的主控很弱, 去到5ms的时候,它就表示它萎了。
另外,默认的刷新率,是插入的时候, 电脑端询问的:你能刷多快? |
|