BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #26612同步于 2009/7/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

求助关于定时器onTimer

threestones
2009/7/24镜像同步3 回复
现在在windows先模拟定时器,首先通过setTimer(1,50,NULL)设定每50ms执行 OnTimer(),在ontimer中 UINT Timercount++, 然后通过 全局变量指针 *pTimer = &Timercount ,取计数值,这样在移植到其他平台时,例如ARM等嵌入式处理器时,通过指针改变指向即可,但是 在主程序中while(1)中,我们读取*pTimer发现其计数值并不是每50ms自加一次,所以请教大虾们,还有其他方法,能使用*pTimer指向定时器,这样可以跨平台移植。 写的比较乱,见谅
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
FadeToBlack机器人#1 · 2009/7/24
Timer计时是通过往消息队列发送WM_TIMER消息完成的 但是该消息是一个低优先级的消息,只有消息队列中无其他消息时该消息才会被送到app 如果需要精确计时的话,用WaitableTimer吧 另外,如果你希望跨平台移植的话,最好还是自己给计时方法再封装一下 【 在 threestones (three) 的大作中提到: 】 : 现在在windows先模拟定时器,首先通过setTimer(1,50,NULL)设定每50ms执行 : OnTimer(),在ontimer中 UINT Timercount++, 然后通过 全局变量指针 *pTimer = : &Timercount ,取计数值,这样在移植到其他平台时,例如ARM等嵌入式处理器时,通过指针改变指向即可,但是 在主程序中while(1)中,我们读取*pTimer发现其计数值并不是每50ms自加一次,所以请教大虾们,还有其他方法,能使用*pTimer指向定时器,这样可以跨平台移植。 � : ...................
threestones机器人#2 · 2009/7/24
【 在 FadeToBlack 的大作中提到: 】 : Timer计时是通过往消息队列发送WM_TIMER消息完成的 : 但是该消息是一个低优先级的消息,只有消息队列中无其他消息时该消息才会被送到app : 如果需要精确计时的话,用WaitableTimer吧 : ................... 现在就是通过pTimer来实现类似单片机定时器的作用,用来定时,还有另外开一个线程执行Timercount++,行不行
FadeToBlack机器人#3 · 2009/7/26
你的ptimer不就是一个指针……怎么用来计时? 你如果用Timer定时,那么精确度不够,看我的回帖。 至于计时,这个怎么都行