Windows下实现高精度定时器 [问题点数:200分,结帖人WizardK]

Bbs7
本版专家分:15040
Blank
红花 2010年3月 VC/MFC大版内专家分月排行榜第一
结帖率 100%
Bbs4
本版专家分:1823
Bbs7
本版专家分:11701
Bbs7
本版专家分:15040
Blank
红花 2010年3月 VC/MFC大版内专家分月排行榜第一
Bbs3
本版专家分:681
Bbs3
本版专家分:681
Bbs5
本版专家分:4430
Bbs4
本版专家分:1190
Bbs2
本版专家分:303
Bbs5
本版专家分:4944
Bbs7
本版专家分:24085
Blank
红花 2010年2月 VC/MFC大版内专家分月排行榜第一
Blank
蓝花 2010年3月 VC/MFC大版内专家分月排行榜第三
Bbs7
本版专家分:16799
Bbs11
本版专家分:255346
Blank
状元 2008年 总版技术专家分年内排行榜第一
Blank
进士 2009年 总版技术专家分年内排行榜第四
Blank
金牌 2009年2月 总版技术专家分月排行榜第一
2009年1月 总版技术专家分月排行榜第一
2008年11月 总版技术专家分月排行榜第一
2008年10月 总版技术专家分月排行榜第一
2008年9月 总版技术专家分月排行榜第一
2008年8月 总版技术专家分月排行榜第一
2008年7月 总版技术专家分月排行榜第一
2008年6月 总版技术专家分月排行榜第一
2008年5月 总版技术专家分月排行榜第一
2008年4月 总版技术专家分月排行榜第一
Blank
银牌 2008年12月 总版技术专家分月排行榜第二
2008年3月 总版技术专家分月排行榜第二
2008年2月 总版技术专家分月排行榜第二
Bbs1
本版专家分:34
Bbs10
本版专家分:119324
Blank
进士 2008年 总版技术专家分年内排行榜第七
Blank
铜牌 2008年1月 总版技术专家分月排行榜第三
Blank
红花 2008年1月 VC/MFC大版内专家分月排行榜第一
2007年12月 VC/MFC大版内专家分月排行榜第一
Blank
黄花 2008年9月 VC/MFC大版内专家分月排行榜第二
2008年6月 VC/MFC大版内专家分月排行榜第二
2008年5月 VC/MFC大版内专家分月排行榜第二
2008年3月 VC/MFC大版内专家分月排行榜第二
2008年2月 VC/MFC大版内专家分月排行榜第二
Bbs5
本版专家分:2871
Bbs2
本版专家分:276
Bbs6
本版专家分:8542
Bbs1
本版专家分:72
Bbs3
本版专家分:588
Bbs2
本版专家分:107
Bbs7
本版专家分:15040
Blank
红花 2010年3月 VC/MFC大版内专家分月排行榜第一
Bbs7
本版专家分:15040
Blank
红花 2010年3月 VC/MFC大版内专家分月排行榜第一
Bbs6
本版专家分:7841
Bbs1
本版专家分:25
Bbs1
本版专家分:53
Bbs8
本版专家分:38418
Blank
蓝花 2006年2月 VC/MFC大版内专家分月排行榜第三
Bbs11
本版专家分:255346
Blank
状元 2008年 总版技术专家分年内排行榜第一
Blank
进士 2009年 总版技术专家分年内排行榜第四
Blank
金牌 2009年2月 总版技术专家分月排行榜第一
2009年1月 总版技术专家分月排行榜第一
2008年11月 总版技术专家分月排行榜第一
2008年10月 总版技术专家分月排行榜第一
2008年9月 总版技术专家分月排行榜第一
2008年8月 总版技术专家分月排行榜第一
2008年7月 总版技术专家分月排行榜第一
2008年6月 总版技术专家分月排行榜第一
2008年5月 总版技术专家分月排行榜第一
2008年4月 总版技术专家分月排行榜第一
Blank
银牌 2008年12月 总版技术专家分月排行榜第二
2008年3月 总版技术专家分月排行榜第二
2008年2月 总版技术专家分月排行榜第二
Bbs7
本版专家分:15040
Blank
红花 2010年3月 VC/MFC大版内专家分月排行榜第一
Bbs7
本版专家分:15040
Blank
红花 2010年3月 VC/MFC大版内专家分月排行榜第一
Bbs3
本版专家分:547
Bbs4
本版专家分:1389
Blank
黄花 2010年7月 移动平台大版内专家分月排行榜第二
2010年6月 移动平台大版内专家分月排行榜第二
Blank
蓝花 2010年8月 移动平台大版内专家分月排行榜第三
Bbs4
本版专家分:1299
Bbs6
本版专家分:5959
Bbs4
本版专家分:1636
Bbs3
本版专家分:891
Bbs1
本版专家分:15
Bbs6
本版专家分:5695
Bbs11
本版专家分:255346
Blank
状元 2008年 总版技术专家分年内排行榜第一
Blank
进士 2009年 总版技术专家分年内排行榜第四
Blank
金牌 2009年2月 总版技术专家分月排行榜第一
2009年1月 总版技术专家分月排行榜第一
2008年11月 总版技术专家分月排行榜第一
2008年10月 总版技术专家分月排行榜第一
2008年9月 总版技术专家分月排行榜第一
2008年8月 总版技术专家分月排行榜第一
2008年7月 总版技术专家分月排行榜第一
2008年6月 总版技术专家分月排行榜第一
2008年5月 总版技术专家分月排行榜第一
2008年4月 总版技术专家分月排行榜第一
Blank
银牌 2008年12月 总版技术专家分月排行榜第二
2008年3月 总版技术专家分月排行榜第二
2008年2月 总版技术专家分月排行榜第二
Bbs2
本版专家分:487
Bbs7
本版专家分:14382
Bbs7
本版专家分:17085
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs4
本版专家分:1131
Bbs7
本版专家分:15040
Blank
红花 2010年3月 VC/MFC大版内专家分月排行榜第一
Bbs11
本版专家分:255346
Blank
状元 2008年 总版技术专家分年内排行榜第一
Blank
进士 2009年 总版技术专家分年内排行榜第四
Blank
金牌 2009年2月 总版技术专家分月排行榜第一
2009年1月 总版技术专家分月排行榜第一
2008年11月 总版技术专家分月排行榜第一
2008年10月 总版技术专家分月排行榜第一
2008年9月 总版技术专家分月排行榜第一
2008年8月 总版技术专家分月排行榜第一
2008年7月 总版技术专家分月排行榜第一
2008年6月 总版技术专家分月排行榜第一
2008年5月 总版技术专家分月排行榜第一
2008年4月 总版技术专家分月排行榜第一
Blank
银牌 2008年12月 总版技术专家分月排行榜第二
2008年3月 总版技术专家分月排行榜第二
2008年2月 总版技术专家分月排行榜第二
Bbs5
本版专家分:3754
Bbs7
本版专家分:15040
Blank
红花 2010年3月 VC/MFC大版内专家分月排行榜第一
Bbs5
本版专家分:4944
Bbs5
本版专家分:4944
一个简单高精度定时器设计
下面设计了一个轻量的<em>高精度</em><em>定时器</em>类,主要使用timeGetTime()函数:   DWORD timeGetTime(VOID); 返回系统时间,以毫秒为单位。系统时间是从系统启动到调用函数时所经过的毫秒数。注意,这个值是32位的,会在0到2^32之间循环,约49.71天。   代码设计非常简单,需要配合一个while(true)循环来使用, 这个循环你当然可以放到一个线程中: #in...
VC++ 下多媒体高精度定时器timeSetEvent
VC++ 下多媒体<em>高精度</em><em>定时器</em>timeSetEvent         用经典API SetTimer恐怕是老生长谈了,但是他的精度不高,不能满足一些要求,容易造成<em>定时器</em>飘移(timer overrun as i translated)。原因是考虑了系统发出并处理<em>定时器</em>的微小间隔。     下面介绍一下VC6.0 里面的多媒体<em>定时器</em>,是基于硬件中断的,因此精度高(Linux下的一般中断都是
利用Windows API实现精确计时器
class CPreciseTimer { public: CPreciseTimer(unsigned int, ITimerObserver*); void Start(); void Pause(); void Terminate(); ~CPreciseTimer(void); private: TimerThreadParam m_param; CWinThread *m
c实现毫秒、微秒级定时器
秒级<em>定时器</em>,都知道可以用sleep<em>实现</em>,但如果要<em>实现</em>毫秒级呢?usleep? 使用select<em>实现</em> select函数原型:int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); 参数说明: slect的第一个参数nfds为fdset集合中最大描述...
linux 高精度定时器 hrtimer 用户空间的应用 man timer_create
TIMER_CREATE(2) Linux Programmer's Manual TIMER_CREATE(2) NAME timer_create - create a POSIX per-process timer SYNOPSIS #include #include int time
hrtimer 高精定时器使用例子
在kernel,有个线程每个十秒往上层系统上报battery及USB的状态信息。        加入直接sleep 10 秒的话,插入USB的时候不能及时更新状态,这个时候就可以使用 hrtimer + wait queue 来<em>实现</em>了               void battery_kthread_hrtimer_init(void) { ktime_t ktime;
Windows实现精确计时
// //QueryPerformanceCounter()这个函数返回高精确度性能计数器的当前计数值 //QueryPerformanceFrequency()返回机器内部<em>定时器</em>的时钟频率,每秒嘀哒声的个数. //两次计数值之差除以时钟频率就是两次的间隔时间,单位是秒 // #include &amp;lt;iostream&amp;gt; #include&amp;lt;stdio.h&amp;gt; #include&amp;l...
Linux 内核定时器使用 一 低精度定时器
内核<em>定时器</em>是一个数据结构,它告诉内核在用户定义的时间点使用用户定义的参数来执行一个用户定义的函数。其<em>实现</em>位于 &amp;lt;linux/timer.h&amp;gt;中。 内核提供了一组用来声明、注册和删除内核<em>定时器</em>的函数,相关接口如下: struct timer_list { /* * All fields that change during normal runtime grouped to...
高精度延时函数的实现
1、用for函数<em>实现</em>void udelay() { int i; for(i=0; i&amp;lt;xxx; i++); } void test() { while(1) { udelay(); GPIO_SET(1); //拉高电平 udelay(); GPIO_SET(0); //拉低电平 } }        在udelay函数中,用一个for循环进行延时,但是我们怎么...
mfc精确控制时间 ms级别
mfc精确控制时间 ms级别
boost库中计时器的使用总结(timer)
Boost1.48版以后的timer库由两个组件组成:     1. 早期的timer  (V1)    :使用的C/C++库函数std::clock()。其又包含3个小组件:             1.1    计时器timer             1.2    progress_timer             1.3    progress_display
Qt学习笔记-定时器的应用及精度设置
本人最近在做一个实时的温度采集及记录软件,其中有用到<em>定时器</em>,也由于<em>定时器</em>的误差出现一些问题,特此记录。开发环境 Windows 7 旗舰版 Qt 5.5.0 VS2013 32bit 众所周知,在Qt中有两个方法可以<em>实现</em><em>定时器</em>,一个是用QTimer类,另一个是用QObject的<em>定时器</em>事件。(关于QTimer类和QObject的<em>定时器</em>事件的介绍与使用,大家可以自行找资料)我在开发过程中遇到的问题是:
Delphi自制的高精度计时器(附带源码)
自制的<em>高精度</em>计时器,Delphi开发,副源码,精确到毫秒
实现高精度定时器
#include &lt;<em>windows</em>.h&gt; #include &lt;stdio.h&gt; /* typedef union _LARGE_INTEGER { struct { DWORD LowPart; LONG HighPart; }; struct { DWORD LowPart; LONG HighPart; } u; LONGLONG Quad...
Windows高精度时间
目 录 第1章 计时    1 1.1 GetTickCount    1 1.2 timeGetTime    1 1.3 QueryPerformanceCounter    1 1.4 测试    2 第2章 等待    4 2.1 Sleep    4 2.2 SetWaitableTimer  
Delphi高精度计时方法
//取毫秒级时间精度(方法一):vart1,t2:int64;r1:int64;begint1:=GetTickCount;//获取开始计数 WINDOWS APIsleep(1000);{do...}//执行要计时的代码t2:=GetTickCount;//获取结束计数值r1:=t2-t1;//取得计时时间,单位毫秒(ms)showmessage(inttostr(r1));end;  
Windows定时精度比较
Windows定时精度比较   方式一:VC中的WM_TIMER消息映射能进行简单的时间控制。首先调用函数SetTimer()设置定时间隔,如SetTimer(0,200,NULL)即为设置200ms的时间间隔。然后在应用程序中增加定时响应函数 OnTimer(),并在该函数中添加响应的处理语句,用来完成到达定时时间的操作。这种定时方法非常简单,可以<em>实现</em>一定的定时功能,但其定时功能如同Slee
VC++中的计时器及多媒体高精度计时器
Windows计时器是一个非常有用的编程元素,而且计时器的使用非常简单,我们只需要一个时间间隔参数来调用SetTimer函数设置和启动计时器,通过WM_TIMER消息的响应函数进行计时器控制,调用KillTimer函数停止计时器。 但是由于Windows是一个非实时操作系统,所以如果我们定义的时间间隔小于100ms的时候,计时器可能不会很准确。所以,对于有些时间要求比较高的情况,我们需要使用多媒
Python写的一个优美的定时器,定时精度可调
# -* coding: utf-8 -*- import sys import os import getopt import threading import time def Usage(): usage_str = '''说明: \t<em>定时器</em> \timer.py -h 显示本帮助信息,也可以使用--help选项 \timer.py -d num 指定一个延时时间(以毫秒为单位)
用VisualC_6_0实现高精度定时器
用VisualC_6_0<em>实现</em><em>高精度</em><em>定时器</em>用VisualC_6_0<em>实现</em><em>高精度</em><em>定时器</em>用VisualC_6_0<em>实现</em><em>高精度</em><em>定时器</em>用VisualC_6_0<em>实现</em><em>高精度</em><em>定时器</em>用VisualC_6_0<em>实现</em><em>高精度</em><em>定时器</em>
qt定时器精度
<em>定时器</em>的精度取决于底层操作系统和硬件。绝大多数平台支持精度为1毫秒,尽管<em>定时器</em>的准确性在许多现实世界的情况下和这不相符。 准确性也取决于<em>定时器</em>类型(Qt::TimerType)。对于Qt::PreciseTimer来说,QTimer将试图保持精确度在1毫秒。精确的<em>定时器</em>也从来不会比预计的还要早超时。 对于Qt::CoarseTimer和Qt::VeryCoarseTimer类型,QTi
Qt 定时器的几种使用方式、windows精确定时器使用【精确度对比】
Qt <em>定时器</em>的几种方式 摘要: Qt中<em>定时器</em>的使用有两种方法,一种是使用QObject类提供的<em>定时器</em>startTimer,还有一种就是使用QTimer类。 方法介绍: 共有方法:   QTimer(QObject *parent = Q_NULLPTR) 构造函数   ~QTimer() 析构函数 int ...
VC实现高精度定时器
VC<em>实现</em><em>高精度</em><em>定时器</em>(精确到1ms)
利用boost实现定时器
#include &amp;lt;iostream&amp;gt; #include &amp;lt;string&amp;gt; #include &amp;lt;boost/asio.hpp&amp;gt; #include &amp;lt;boost/date_time/gregorian/gregorian.hpp&amp;gt; #include &amp;lt;boost/asio/steady_timer.hpp&amp;gt; #include &amp;lt;bo...
iOS使用dispatch_source_t实现高精度定时控制器
在进行iOS开发的过程当中,经常会用到<em>定时器</em>去处理一些定时任务。对于时间精度要求不高的需求,NSTimer通常可以满足大多数情况的任务。但是,由于NSTimer受Runloop影响,可能会导致定时精度不够。此时可以考虑使用dispatch_source_t来<em>实现</em><em>定时器</em>的功能。 1.实例化<em>定时器</em>对象 @property(nonatomic,strong)dispatch_source_t ...
实时定时器C实现
linux下还有一种<em>高精度</em>的<em>定时器</em>,那就是posix_timer.我记得以前看代码的时候CLOCK_REALTIME的<em>定时器</em>似乎用的就是rdtsc指令,不过现在不确定了,先放到一边。原理上来说,可以在变频的时候也使用rdtsc指令,因为CPU的频率我们也是知道的,变频的时候内核也是知道的。     下面是我的timer_create的例子,编译的时候要加上rt库,这是linux的realtime
C#调用多媒体定时器
在Windows操作系统下,为了获得<em>高精度</em>的<em>定时器</em>,大多数时候采用多媒体<em>定时器</em>,其分辨率可达到1ms,适用于对实时性要求比较高的场合(虽然Windows自身为非实时系统,但是在很多场合还是够用的);而SetTimer提供的定时精度相比较而言,不太精确,适用于对时间性要求不高的系统里面。 当我们使用Visual C++作为开发语言时,调用多媒体<em>定时器</em>的API函数即可解决<em>定时器</em>问题;但是有时候需要采
高精度计时器(High Resolution Timer)
原文地址:http://www.songho.ca/misc/timer/timer.html 一、C计时器 C语言标准库里提供了clock()函数来测量代码执行时间,包含在#include头文件中。该函数和系统平台相互独立,支持多种系统运行,但精度不高,甚至达不到毫秒的精度。 可以使用下面的代码测试clock()的精度。输出结果即是函数clock()可以测量的最
Windows下高精度定时器讨论
获得<em>高精度</em>时间点是可能的,但<em>高精度</em>时间段是比较难的,精度越高受到各方面的影响越大 只有QueryPerformanceCounter能突破1ms,内部就是一条汇编语句直接读cpu晶振读数, 但容易受到线程排队和消息队列延迟带来的影响,不稳定 QueryPerformanceCounter 缺点是精度不够高,优点是产生的间隔能突破1ms的限制,可以达到更小的间隔,理论上事件产生的频率可以
widows 高精度多媒体定时器
<em>windows</em> <em>高精度</em>多媒体<em>定时器</em>,支持毫秒精确定时
JAVA精确定时器
JAVA精确<em>定时器</em>,利用系统时间,使长期工作的误差稳定。 功能: ·可定时启动任务或直接启动任务 ·重复启动任务(时间间隔可在任务线程中改变,范围大于100ms,否则精度降低) 引用列表: ·import psn.razerpen.thread.AccuracyTimer; ·import psn.razerpen.thread.AccuracyTimerMission; ·import psn.razerpen.time.TimeStruct; 使用方法: //1·继承AccuracyTimerMission接口,创建一个类。 class MyTimer implements AccuracyTimerMission { //2·指定一个周期 int nDelay=1000; //3·重写run方法(如不需要使用新线程执行任务,也可留空) /** * 任务线程,本函数继承自Runnable */ @Override public void run() { System.out.println(new TimeStruct()); } //4·重写RunInCurrentThread(long nCurrentMilliSecond)方法。该方法接收当前时间,并返回下一次执行的时间。如果返回值不大于nCurrentMilliSecond则中止计时器。该方法必须重写。 /** * 接收当前时间的毫秒值,并返回下一次执行的毫秒值。如果返回的下一个时间早于当前时间,则退出 */ @Override public long RunInCurrentThread(long nCurrentMilliSecond) { return nCurrentMilliSecond+=nDelay; } } //5·创建主线程代码 public class TestTimer { public static void main(String[] args) throws InterruptedException { //6·创建一个AccuracyTimer对象,并指定一个任务。 AccuracyTimer at=new AccuracyTimer(new MyTimer()); //7·(可选)如果不需要在新线程中启动任务,则写 // at.SetNewThreadEnabled(false); //否则不写或者写 // at.SetNewThreadEnabled(true); //8·(可选)设定第一次启动的时间点SetNextMissionTime/SetNextMissionMilliSecond或延迟时间SetNextMissionMilliSecondFromNow //设置为当前这一分钟的第59秒后启动(不写此行则表示直接启动) at.SetNextMissionTime(Integer.MIN_VALUE, -1, -1, -1, -1, 59, 0); //9·启动<em>定时器</em> at.Start(); //10·主线程继续 for(int i=0;i<60;++i){ Thread.sleep(1000); } //11·结束<em>定时器</em> at.End(); } } 详见sample.razerpen.thread包中TestTimer及各代码文件中注释
windows高精度时间获取
对关注性能的程序开发人员而言,一个好的计时部件既是益友,也是良师。计时器既可以作为程序组件帮助程序员精确的控制程序进程,又是一件有力的调试武器,在有经验的程序员手里可以尽快的确定程序的性能瓶颈,或者对不同的算法作出有说服力的性能比较。     在Windows平台下,常用的计时器有两种,一种是timeGetTime多媒体计时器,它可以提供毫秒级的计时。但这个精度对很多应用场合而言还是太粗
lua 微妙定时器修改办法
提供lua 中将毫秒<em>定时器</em>修改为微妙<em>定时器</em>的方法。。。。
STM32高分辨率定时器(HRTIM)使用笔…
STM32高分辨率功能非常强大,寄存器数量非常多,使用起来也比较麻烦,本文使用HRTIM1产生一组互补输出的PWM 高分辨率<em>定时器</em>的初始化比普通<em>定时器</em>要复杂得多,  HRTIM_OutputCfgTypeDef HRTIM_TIM_OutputStructure;//配置输出特性,高低电平等  HRTIM_BaseInitTypeDef HRTIM_BaseInitStructure;//配置基
golang 高性能定时器之最小堆实现
开发十年,就只剩下这套Java开发体系了 &amp;gt;&amp;gt;&amp;gt;    ...
stm32使用超高精度的同步时钟的设计
有些场合可能需要超<em>高精度</em>的同步时钟,比如0.5ppm甚至更低的时钟,并且保证多台设备很好的重复率,因此这篇文章主要讲述如何设计基于stm32的超<em>高精度</em>的时钟。        首先时钟精度要0.5ppm甚至更低的话,显然要使用txco,也就是温补晶振,0.5ppm的温补晶振市面上比较常见,体积很小(2520),并且价格很便宜,两三元一片,因为这种类型的晶振广泛引用于手机,GPS等需要精密时
QNX下存在三类定时器
QNX下存在三类<em>定时器</em>,使用的难易程度不一样,精度也不一样。分别对其进行了一下封装,使用起来相对简单一点。 一、PtTimer PtTimer是三者之中使用起来最简单的,但性能也最差,不过它与Rttimer一样,可以直接操作GUI里面的函数,相比HardTimer就不行了。 // QnxPtTimer.h: interface for the CQnxPtTimer clas
Linux用户态程序定时器——POSIX定时器
采用POSIX<em>定时器</em>接口,设计与<em>实现</em>用户态程序定时功能。
VC++多媒体定时器实现
MFC 多媒体定时<em>实现</em>精确到1ms的精度
PLSQL Developer11中文绿色(32位)下载
PLSQL Developer11中文绿色(32位) 相关下载链接:[url=//download.csdn.net/download/zhoullllllll/9512432?utm_source=bbsseo]//download.csdn.net/download/zhoullllllll/9512432?utm_source=bbsseo[/url]
flashplayer_10_ax_debugflashplayer_10_ax_debug下载
flashplayer_10_ax_debugflashplayer_10_ax_debugflashplayer_10_ax_debugflashplayer_10_ax_debugflashplayer_10_ax_debug 相关下载链接:[url=//download.csdn.net/download/awsbamboo115/2148319?utm_source=bbsseo]//download.csdn.net/download/awsbamboo115/2148319?utm_source=bbsseo[/url]
CrossFire_OBV074-V075_Patch下载
CrossFire_OBV074-V075_Patch 相关下载链接:[url=//download.csdn.net/download/cf1574858548/2587117?utm_source=bbsseo]//download.csdn.net/download/cf1574858548/2587117?utm_source=bbsseo[/url]
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 windows学习大数据 python定时器教程
我们是很有底线的