abeh
驱动牛犊
驱动牛犊
  • 注册日期2001-04-10
  • 最后登录2003-01-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2725回复:17

如何在WDM当中设置微秒级周期定时器?(急)

楼主#
更多 发布于:2002-08-09 12:21
在2000下在WDM访问硬件,需要每200us进行一次操作,使用KeSetTimerEx函数发现定时间隔为毫秒级,请各位专家指点如何设置us级的周期定时器,能否挂接到系统实时时钟中断然后在ISR当中直接处理(为保证实时性直接使用ISR,不用DPC,ISR当中的工作很少),这是最好,不然的话能否还有其他折衷方法,请指点.

最新喜欢:

IammeIamme
我爱开发
Gong_XG
驱动太牛
驱动太牛
  • 注册日期2002-10-01
  • 最后登录2010-11-25
  • 粉丝0
  • 关注0
  • 积分313分
  • 威望46点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-12-02 14:37
最好用硬件,时间一到,产生中断。编个驱动。
bushwhack
驱动牛犊
驱动牛犊
  • 注册日期2002-11-15
  • 最后登录2003-12-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-12-02 12:15
ZwSetTimerResolution sets the resolution of the system timer.
NTSYSAPI
NTSTATUS
NTAPI
ZwSetTimerResolution(
IN ULONG RequestedResolution,
IN BOOLEAN Set,
OUT PULONG ActualResolution
);
Parameters
RequestedResolution
The requested timer resolution in units of 100-nanoseconds.
Set
Specifies whether the requested resolution should be established or revoked.
ActualResolution
Points to a variable that receives the actual timer resolution in units of
100-nanoseconds.
Return Value
Returns STATUS_SUCCESS or an error status, such as STATUS_TIMER_RESOLUTION_NOT_SET .
Related Win32 Functions
timeBeginPeriod , timeEndPeriod .
Remarks
None.
ysy
ysy
驱动中牛
驱动中牛
  • 注册日期2002-02-18
  • 最后登录2008-08-25
  • 粉丝0
  • 关注0
  • 积分201分
  • 威望29点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-12-02 11:48
[quote][quote]首先获得你的cpu的主频,然后读tsc计数器,那么你可以获得ns级的定时。

可能性有多大? :mad: [/quote]
没可能性。这是实验的结果。 [/quote]
试验的结果是什么意思?可否说的详细点?
yellowdog
驱动牛犊
驱动牛犊
  • 注册日期2002-10-11
  • 最后登录2010-01-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-12-02 10:48
[quote]首先获得你的cpu的主频,然后读tsc计数器,那么你可以获得ns级的定时。

可能性有多大? :mad: [/quote]
没可能性。这是实验的结果。
ysy
ysy
驱动中牛
驱动中牛
  • 注册日期2002-02-18
  • 最后登录2008-08-25
  • 粉丝0
  • 关注0
  • 积分201分
  • 威望29点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-12-02 09:06
“可能性有多大“是什么意思?
OneWind
驱动小牛
驱动小牛
  • 注册日期2002-05-15
  • 最后登录2009-04-10
  • 粉丝0
  • 关注0
  • 积分82分
  • 威望11点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-12-02 09:02
首先获得你的cpu的主频,然后读tsc计数器,那么你可以获得ns级的定时。

可能性有多大? :mad:
嘿,大家好!
Ares
驱动小牛
驱动小牛
  • 注册日期2001-03-28
  • 最后登录2020-04-09
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望114点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
7楼#
发布于:2002-12-02 08:55
用系统8254,最大可以达到20us左右
易水
yellowdog
驱动牛犊
驱动牛犊
  • 注册日期2002-10-11
  • 最后登录2010-01-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-12-01 15:14
要么用系统的8254要么加自己的定时器,用软件的方法好象不行,谁能只靠软件达到10US,在下请教
zhoujie7592
驱动牛犊
驱动牛犊
  • 注册日期2002-06-27
  • 最后登录2004-05-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-11-30 19:35
Ares,请问你在windows下直接操作过8254吗?
Ares
驱动小牛
驱动小牛
  • 注册日期2001-03-28
  • 最后登录2020-04-09
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望114点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
10楼#
发布于:2002-08-13 14:15
我不久前才问过,只能直接操作8254才能达到10微秒级的定时
易水
custjcy
驱动牛犊
驱动牛犊
  • 注册日期2002-03-31
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-08-10 23:18
哈哈!真好!
sunsetyang
驱动小牛
驱动小牛
  • 注册日期2001-03-23
  • 最后登录2007-03-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-08-10 20:30
怎么读CPU主频和tsc计时器呢,我很菜的,请帮忙

rdtsc指令,返回的64位数据edx:eax中。还要除以frequency才是时间。在windows中,queryperformancecounter/frequency可以完成你要的工作。
[color=red]Optimization[/color] In Progress . . . Welcome to http://mail.ustc.edu.cn/~chyang/
chnh
驱动小牛
驱动小牛
  • 注册日期2002-04-09
  • 最后登录2004-02-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-08-10 16:19
得用汇编,看看汇编指令表吧
abeh
驱动牛犊
驱动牛犊
  • 注册日期2001-04-10
  • 最后登录2003-01-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-08-10 15:58
怎么读CPU主频和tsc计时器呢,我很菜的,请帮忙
我爱开发
ysy
ysy
驱动中牛
驱动中牛
  • 注册日期2002-02-18
  • 最后登录2008-08-25
  • 粉丝0
  • 关注0
  • 积分201分
  • 威望29点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2002-08-09 17:37
首先获得你的cpu的主频,然后读tsc计数器,那么你可以获得ns级的定时。
abeh
驱动牛犊
驱动牛犊
  • 注册日期2001-04-10
  • 最后登录2003-01-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2002-08-09 12:50
以前的帖自都没有具体的东西,不知那里有实际的解决方法,请高人指点
我爱开发
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
17楼#
发布于:2002-08-09 12:25
以前的帖子有讨论的。
游客

返回顶部