SetTimer()设置的定时器的定时时间>50ms,这在实时数据采集中是不够的。用多媒体定时器能精确到1ms,效果很好。
//定时器------------------------
#define TIMER_ACCURACY        1
int TimerID;
UINT wAccuracy;
int InitTimer();
int ReleaseTimer();
void PASCAL TimerProc(UINT wTimerID,UINT msg,DWORD dwUser,DWORD dwParam,DWORD dlParam);
int InitTimer()
{
TIMECAPS       tc;
if(timeGetDevCaps(&tc,sizeof(TIMECAPS))==TIMERR_NOERROR) //获取系统的取值范围
{
wAccuracy=min(max(tc.wPeriodMin,TIMER_ACCURACY),tc.wPeriodMax);
timeBeginPeriod(wAccuracy);
return 1;
}
else
{
MessageBox(NULL,"定时器无法使用!",NULL,NULL);
return 0;
}
}
int ReleaseTimer()
{
timeKillEvent(TimerID);
timeEndPeriod(wAccuracy);
return 1;
}
/*名称:TimerProc
功能:定时处理
参数:wTimerID定时器ID,msg消息参数,dwUser使用者,dwParam参数1,dlParam参数2
*/
void PASCAL TimerProc(UINT wTimerID,UINT msg,DWORD dwUser,DWORD dwParam,DWORD dlParam)
{
}
//打开定时器
TimerID=timeSetEvent(1000,wAccuracy,(LPTIMECALLBACK)TimerProc,(DWORD)0,TIME_PERIODIC); //1000为定时时间,表示1000ms

精确到1ms的定时器相关推荐

  1. Windows多媒体定时器(精确到1ms) (二)

    这里还是聊的是 Windows多媒体定时器. 之前做的那个.感觉哪儿不对劲儿: 头文件封装没有做好, 回调函数没有写好. 今天,看了一个已经投入使用 的定时器(用示波器测试过,精确到1ms).废话不多 ...

  2. linux下延时1ms用什么函数,Linux下1ms分辨率定时器推荐方式

    我需要一个在Linux下具有1ms分辨率的计时器刻度.它用于递增计时器值,该计时器值又用于查看是否应触发各种事件.由于glibc的要求,POSIX timerfd_create不是一个选项.我尝试使用 ...

  3. MODBUS学习篇三

    六.modbus实现主机对从设备读取数据包和从设备写入数据包      1.准备好硬件上能精确到1ms的定时器      2. 先完成一个MODBUS所需要的软件上的定时器 void Timer2_I ...

  4. 获取系统时间的几种方法,最高精确1ms

    ●[获取系统时间的几种方法,最高精确1ms] 1.硬件支持高精度计时器 ( 精确到1ms ) //获取的最准确,精确到1ms LARGE_INTEGER nFreq; LARGE_INTEGER nB ...

  5. c语言1ms延时程序,请教老师,51微控制器在12M晶振,C语言程式设计时,延时函式120次=1ms(书本上是这样的,不懂),是怎样得来的?...

    请教老师,51微控制器在12M晶振,C语言程式设计时,延时函式120次=1ms(书本上是这样的,不懂),是怎样得来的?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集 ...

  6. 关于Linux的应用层定时器

    使用定时器的目的无非是为了周期性的执行某一任务,或者是到了一个指定时间去执行某一个任务.要达到这一目的,一般有两个常见的比较有效的方法.一个是用 Linux 内部的三个定时器:另一个是用 sleep ...

  7. 51单片机定时器初值计算

    **菜鸟关于51类单片机的定时器初值计算问题的计算**首先先来介绍单片机的几个周期: 1.时钟周期,也称为振荡周期:定义为时钟脉冲的倒数,在单片机中也就等于晶振的倒数. 51单片机中把一个时钟周期定义 ...

  8. 蓝桥杯单片机比赛学习:6、中断系统之定时器中断的基本原理

    上节我们讲了中断的外部中断,基本的了解了一下中断,这一节我们继续来学习中断系统的定时器中断基本原理,本节很重要无论是在比赛中还是在单片机.嵌入式等的学习上都有着很重要的地位.如对本作者有兴趣可以去我主 ...

  9. 51单片机应用定时器实现精准延时函数的封装

    #include <STC89C5xRC.H>typedef unsigned char u8; typedef unsigned int u16; sbit led = P2^0; bi ...

最新文章

  1. 栅极电阻要取100欧姆?
  2. javascript之作用域
  3. 从闭包函数的变量自增的角度 - 解析js垃圾回收机制
  4. 怎样批量获取文件名,批量提取文件名 文件名读取windows 批处理文件
  5. mac 设置终端样式_如何将终端样式设置为freeCodeCamp或任何您想要的样式
  6. 【转】 UML各种线的含义
  7. Flask 蓝图机制及应用
  8. Linux基本操作(6)——Linux 重写rm 命令 实现回收站功能
  9. 电子电路基础——知识点(上篇)
  10. Ubuntu20系统添加右键菜单:新建文档
  11. nssa和stub_eNSP环境,分析NSSA区域与Stub区域的区别
  12. Microsoft Edge无法打开测试平台的解决方法
  13. 【Java二十周年】十年,二十年
  14. ArcGIS中进行影像裁剪的几种方法汇总
  15. linux添加jetdirect协议,Linux系统中如何打印
  16. 林大计算机科学考研分数线,2018年北京林业大学考研复试分数线已公布
  17. 《Cracking the Coding Interview程序员面试金典》----猫狗收容所
  18. 我来说说我给宝宝买保险的事
  19. 【java小游戏】老虎杠子鸡游戏
  20. 【opencv】在图片上画角并且进行角度检测

热门文章

  1. mysql定位和优化慢查询的方案
  2. 3G中经常提到的R99,R4,R5等为什么这么命名?是指的年份么?
  3. 贪心算法的设计与实现“背包问题+活动安排”
  4. RTX临界段,中断锁与任务锁
  5. 微信平台 和服务器什么区别,微信公众平台是选择服务号还是订阅号?两者有什么区别?...
  6. 软考高项:英语专题及真题
  7. 敏捷方法中极限编程(XP)和Scrum区别
  8. UG编程编辑边倒圆技巧详细分享
  9. 985计算机博士就业前景6,一个普通211大学博士的就业前景
  10. Mac突然没有声音了,音频和视频都不能播放了。