外设天下 - 电脑外设发烧友聚集地

12下一页
我的人缘0

[心得] 站在鼠标主控的角度看刷新率,

16 9411
楼主
跳转到指定楼层
最近都在写鼠标的主控程序,懂了很多东西,来给大家讲一下在鼠标主控这端看刷率的问题。
所有的USB通信都是由电脑这端发起的,通俗来说就是:我叫你的时候,你给我资料;我没叫你的时候,你给我一边凉快去。

而鼠标主控这边处理USB的请求,是通过中断来完成的,就是:当发现有USB请求,中断,处理USb请求的数据,该发的发, 该接收的接收,搞完,继续主程序的循环。
中断的处理称为Interrupt Service Routine,  ISR, 如下图
站在鼠标主控的角度看刷新率,


假设电脑端的USB请求频率为125hz, 就是大概10ms请求一次数据,那么鼠标主控这边就要每10ms准备好要发的数据,比如说移动的距离。那么这就要求ISR+main LOOP(主循环,为什么循环? 因为每秒都是在做很多同样的事情。。。。)的时间要小于或等于10ms。

现在大家明白了,为什么电脑这边请求的速度改了就可以更快吧。

这也是看情况的,比如说有的鼠标主控很强, 改成1000hz的时候, 它要在1ms内处理好ISR 和main loop, 它表示压力不大,
有的主控很弱, 去到5ms的时候,它就表示它萎了。

另外,默认的刷新率,是插入的时候, 电脑端询问的:你能刷多快?
0
已赞
微信分享 收藏
回复

使用道具 举报

我的人缘0
2
发表于 2010-11-21 18:03 只看该作者
这样,那是不是说改变鼠标不入改电脑的?
回复 支持 反对

使用道具 举报

我的人缘0
3
发表于 2010-11-21 18:18 只看该作者
本帖最后由 超电磁侠 于 2010-11-21 18:24 编辑

一般就是改电脑这边询问的频率,  对IO这些鼠标还是有意义的,它那主控处理速度可能比较快,1ms跑完ISR+main loop完全没问题

有些鼠标改了电脑这边也没戏, 性能低下, 跑不了1000hz或者500hz, 250hz可能就到顶了。
也有种情况是,设计程序的人为了确保每个循环的时间,在主循环最后那里加了一条延迟指令,比如说延迟10ms之类, 那么就算主控性很强也没办法,只能跑在125hz。


我估计,XAI的任意刷新率, 就是向电脑报告自己是1000hz的设备, 然后通过在主循环那里改变延时的值来做到的,前面看到一个www字头的id说在某刷新率下滚轮不好使, 就是因为这个数值的延时值影响了扫描滚轮的时间。
回复 支持 反对

使用道具 举报

我的人缘0
4
发表于 2010-11-21 21:07 只看该作者
这样,那你现在测试过哪些鼠标了?关心那些鼠标在这个方面有更好的协调能力……呵呵期待您公布测试结果呀:-)关注,顶!
回复 支持 反对

使用道具 举报

我的人缘0
5
发表于 2010-11-22 00:54 只看该作者
你的意见200HZ足已吗,200以上意义不大?
回复 支持 反对

使用道具 举报

我的人缘0
6
发表于 2010-11-22 06:47 只看该作者
我的意见125HZ足以

除了鼠标外,还要看游戏要不要那么高的刷新率,比如EC与CF
回复 支持 反对

使用道具 举报

我的人缘0
7
发表于 2010-11-22 08:24 只看该作者
那我为什么我125   500    1000
每一个档次我都感到都有明显的差距呢?
还不是游戏,光桌面操作就有很明显的感觉。
回复 支持 反对

使用道具 举报

我的人缘0
8
发表于 2010-11-22 08:50 只看该作者
测试
那我为什么我125   500    1000
每一个档次我都感到都有明显的差距呢?
还不是游戏,光桌面操作就有很明显的感觉。
cuiqi830814 发表于 2010-11-22 08:24


是的,我也感觉不同的刷新率光标移动的感觉都不一样。
回复 支持 反对

使用道具 举报

我的人缘0
9
发表于 2010-11-22 09:20 只看该作者
我用蝰蛇的时候只是觉得刷新率越高这货越热,于是我一直都稳定在125HZ,我甚至把G9x也弄成125的

这篇文章很有意思,我要学习,期待深入具体实例讲解
回复 支持 反对

使用道具 举报

我的人缘0
10
发表于 2010-11-22 09:24 只看该作者
测试
我的意见125HZ足以

除了鼠标外,还要看游戏要不要那么高的刷新率,比如EC与CF
46094570 发表于 2010-11-22 06:47


有啥科学依据不?还是纯个人手感啊?
回复 支持 反对

使用道具 举报

12下一页
高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则