VB vbRC5Base, cPhysicsEngine ,高精度定时器

menghaiid 2016-12-01 01:06:47
因为处理串口数据有实时性要求 所以对定时器要求很高,至少毫秒级吧,VB Timer控件类似的问题在于,在界面上操作以及一些其他延迟因素会导致 Timer控件事件延迟很久才会出来,本来设想使用多媒体API写一个,只是那东西似乎不安全,当然现在主要使用 vbRC5Base库来写,但是发现里面的 cTimer 和 VB Timer 一样有问题,头疼了 ,CCRPTimer当然可以用,只是不想用那个了

然后搜索 vbRC5Base例子,觉得里面应该有高精度定时器? 反正是没找到 ,到是找到 cPhysicsEngine 这个东西,应该是个动画引擎之类的东西吧,不是很熟悉,只是一个例子里那这东西 ,当做一个时间事件使用,突然觉得脑洞满满,这样也可以? 实验了下这东西不能设置时间间隔,我想这个不是什么大问题,可以自己加延迟么。似乎这个也没有重入问题,使用好简单,就是这么个用法?有问题? 觉得好晕 有人这么用过么?

那例子中:
'从这个例子中,我们使用只有其定时-事件 (没有真正的物理这里在此演示中)
'from this instance, we use only its nice Timing-Events (no real Physics here in this Demo)
Set PhTimer = New cPhysicsEngine

PhTimer.StartSimulation ‘启动’
PhTimer.StopSimulation “停止”

Private Sub PhTimer_RenderUpdatedScene(ByVal dT As Double, ByVal FPS As Double)
....................
end sub
...全文
1401 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tiger_Zhao 2016-12-01
  • 打赏
  • 举报
回复
串口通讯底层有缓冲区啊,它自己会实现“毫秒级”的通讯。
你的程序通过MSComm等控件进行通讯,是事件驱动的,是异步的。
如果真有“毫秒级”的同步要求,多任务操作系统(Windows)根本不合适,得用单片机才行。
of123 2016-12-01
  • 打赏
  • 举报
回复
用 OnComm 事件驱动方式,实时性更好一些。最好不用定时器,不仅无通讯时开销大,而且实时性也很难保证。
赵4老师 2016-12-01
  • 打赏
  • 举报
回复
Windows系统计时精度≈15ms
bobogg 2016-12-01
  • 打赏
  • 举报
回复
引用 4 楼 Bobogg 的回复:
[quote=引用 2 楼 of123 的回复:] 用 OnComm 事件驱动方式,实时性更好一些。最好不用定时器,不仅无通讯时开销大,而且实时性也很难保证。
OnComm 可以实现Timer 吗?[/quote] 我看错 sorry 不用里我
bobogg 2016-12-01
  • 打赏
  • 举报
回复
引用 2 楼 of123 的回复:
用 OnComm 事件驱动方式,实时性更好一些。最好不用定时器,不仅无通讯时开销大,而且实时性也很难保证。
OnComm 可以实现Timer 吗?
menghaiid 2016-12-01
  • 打赏
  • 举报
回复
测试这东西一次周期 大致 1.6ms

863

社区成员

发帖
与我相关
我的任务
社区描述
VB COM/DCOM/COM+
c++ 技术论坛(原bbs)
社区管理员
  • COM/DCOM/COM+社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧