阅读:2725回复:17
如何在WDM当中设置微秒级周期定时器?(急)
在2000下在WDM访问硬件,需要每200us进行一次操作,使用KeSetTimerEx函数发现定时间隔为毫秒级,请各位专家指点如何设置us级的周期定时器,能否挂接到系统实时时钟中断然后在ISR当中直接处理(为保证实时性直接使用ISR,不用DPC,ISR当中的工作很少),这是最好,不然的话能否还有其他折衷方法,请指点.
|
|
最新喜欢:![]()
|
沙发#
发布于:2002-12-02 14:37
最好用硬件,时间一到,产生中断。编个驱动。
|
|
板凳#
发布于: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. |
|
地板#
发布于:2002-12-02 11:48
[quote][quote]首先获得你的cpu的主频,然后读tsc计数器,那么你可以获得ns级的定时。 可能性有多大? :mad: [/quote] 没可能性。这是实验的结果。 [/quote] 试验的结果是什么意思?可否说的详细点? |
|
地下室#
发布于:2002-12-02 10:48
[quote]首先获得你的cpu的主频,然后读tsc计数器,那么你可以获得ns级的定时。 可能性有多大? :mad: [/quote] 没可能性。这是实验的结果。 |
|
5楼#
发布于:2002-12-02 09:06
“可能性有多大“是什么意思?
|
|
6楼#
发布于:2002-12-02 09:02
首先获得你的cpu的主频,然后读tsc计数器,那么你可以获得ns级的定时。 可能性有多大? :mad: |
|
|
7楼#
发布于:2002-12-02 08:55
用系统8254,最大可以达到20us左右
|
|
|
8楼#
发布于:2002-12-01 15:14
要么用系统的8254要么加自己的定时器,用软件的方法好象不行,谁能只靠软件达到10US,在下请教
|
|
9楼#
发布于:2002-11-30 19:35
Ares,请问你在windows下直接操作过8254吗?
|
|
10楼#
发布于:2002-08-13 14:15
我不久前才问过,只能直接操作8254才能达到10微秒级的定时
|
|
|
11楼#
发布于:2002-08-10 23:18
哈哈!真好!
|
|
12楼#
发布于:2002-08-10 20:30
怎么读CPU主频和tsc计时器呢,我很菜的,请帮忙 rdtsc指令,返回的64位数据edx:eax中。还要除以frequency才是时间。在windows中,queryperformancecounter/frequency可以完成你要的工作。 |
|
|
13楼#
发布于:2002-08-10 16:19
得用汇编,看看汇编指令表吧
|
|
14楼#
发布于:2002-08-10 15:58
怎么读CPU主频和tsc计时器呢,我很菜的,请帮忙
|
|
|
15楼#
发布于:2002-08-09 17:37
首先获得你的cpu的主频,然后读tsc计数器,那么你可以获得ns级的定时。
|
|
16楼#
发布于:2002-08-09 12:50
以前的帖自都没有具体的东西,不知那里有实际的解决方法,请高人指点
|
|
|
17楼#
发布于:2002-08-09 12:25
以前的帖子有讨论的。
|
|