因為處理串口資料有實時性要求 所以對定時器要求很高,至少毫秒級吧,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
uj5u.com熱心網友回復:
測驗這東西一次周期 大致 1.6msuj5u.com熱心網友回復:
用 OnComm 事件驅動方式,實時性更好一些。最好不用定時器,不僅無通訊時開銷大,而且實時性也很難保證。uj5u.com熱心網友回復:
串口通訊底層有緩沖區啊,它自己會實作“毫秒級”的通訊。你的程式通過MSComm等控制元件進行通訊,是事件驅動的,是異步的。
如果真有“毫秒級”的同步要求,多任務作業系統(Windows)根本不合適,得用單片機才行。
uj5u.com熱心網友回復:
OnComm 可以實作Timer 嗎?
uj5u.com熱心網友回復:
我看錯 sorry 不用里我
uj5u.com熱心網友回復:
Windows系統計時精度≈15ms轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/65404.html
下一篇:VB報錯462,請大神幫忙解決
