全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2717
推到 Plurk!
推到 Facebook!

請問DELPHI的TIMER最小是多少秒

答題得分者是:dllee
ppkliu
一般會員


發表:16
回覆:18
積分:6
註冊:2002-04-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-09-18 22:49:51 IP:61.61.xxx.xxx 未訂閱
聽說可以定義到1ms,真的有到1ms嘛?? verilog cpu DESIGN
------
verilog
cpu DESIGN
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-09-19 07:35:45 IP:211.22.xxx.xxx 未訂閱
可以設到 1ms 啊。 -- Everything I say is a lie.
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-09-21 11:16:52 IP:203.204.xxx.xxx 未訂閱
引言: 聽說可以定義到1ms,真的有到1ms嘛?? verilog cpu DESIGN
TTimer 的單位就是 1ms 為單位,但是你設 1 ms 並不能保證每 1ms 就執行一次。 在本站或其他 VCL 站內應該都有許多的 Thread Timer VCL 元件可以使用,使用 Thread Timer 將優先權設高一點,可以讓每 1ms 儘可能執行一次,但還是有可能會多於 1ms,當然,這還要看你的程式是如何寫的,如果在這個 1ms 的 Timer 中,你的程式碼可以保證在很短的時間內執行完如 0.1ms,而如果你的電腦沒有其他程式在執行,那 CPU Loading 約 10% 大概也可以每 1ms 都執行一次你的 Timer,但如果在 Timer 中已經是要花 10ms 才能完成了,那 CPU Loading 最高也只有 100% 而你的 Timer 應該也不可能每 1ms 都執行一次。 關於 Timer 的準確度,與作業系統也有關,在 95/98/Me 下是不可能準到 1ms 的,在 NT/2K/XP 下才有可能準到 1ms,部分的 RealTime System 如 SoftPLC 聲稱在 NT/2K/XP 下可以有 0.5 ms 或 0.33ms 的準確度。 沒空更新的網頁...
C及指標教學 http://coolsite.to/dllee介紹Shells http://coolsite.to/ushells
------
http://www.ViewMove.com
ppkliu
一般會員


發表:16
回覆:18
積分:6
註冊:2002-04-22

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-09-21 21:07:25 IP:61.61.xxx.xxx 未訂閱
多謝你的回答,我看到一本書上寫的是用組合語言去寫一個DELAY 會比較精準,在DELPHI寫組合語言會不會比較慢。還是DELPHI 可以去呼叫編譯過組合語言的程式來用?? verilog cpu DESIGN
------
verilog
cpu DESIGN
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-09-23 13:09:49 IP:61.231.xxx.xxx 未訂閱
引言: 多謝你的回答,我看到一本書上寫的是用組合語言去寫一個DELAY 會比較精準,在DELPHI寫組合語言會不會比較慢。還是DELPHI 可以去呼叫編譯過組合語言的程式來用?? verilog cpu DESIGN
在 Delphi/BCB 中寫組語與在其他語言下寫組語都是一樣快的呀! Delphi/BCB 可以直接組譯 inline asm 至於說 Delay 組語寫會比較精準?!這還是與之前一樣,要有作業系統的配合,而真的要準的話,要在 ring0 的層級執行才有可能準。 P.S. 真的有需要那麼準嗎?如果是,用硬體可能會比用軟體來得準。 沒空更新的網頁...
C及指標教學 http://coolsite.to/dllee介紹Shells http://coolsite.to/ushells
------
http://www.ViewMove.com
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-09-25 11:18:14 IP:210.85.xxx.xxx 未訂閱
引言: 聽說可以定義到1ms,真的有到1ms嘛?? verilog cpu DESIGN
在陳寬達的深度歷險一書中, 有一段這麼摘述 WINDOWS 95 不論要求多麼短的間隔時間(也就是xxms), 實際上每次觸發開隔時間必定大於54ms, 所以在 95(可能98也類似), 你設定55以下都是必須在54ms時才會觸發ontimer一次 而在 NT下可以有10ms的精準度, 而我自己實測, 設定要 1ms與60ms(在98), 其實求出來的數值沒有任何差別, 因此基本可以設定要1ms, 但實作並沒有作用!
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-09-25 13:56:11 IP:61.231.xxx.xxx 未訂閱
引言: 在陳寬達的深度歷險一書中, 有一段這麼摘述 WINDOWS 95 不論要求多麼短的間隔時間(也就是xxms), 實際上每次觸發開隔時間必定大於54ms, 所以在 95(可能98也類似), 你設定55以下都是必須在54ms時才會觸發ontimer一次 而在 NT下可以有10ms的精準度, 而我自己實測, 設定要 1ms與60ms(在98), 其實求出來的數值沒有任何差別, 因此基本可以設定要1ms, 但實作並沒有作用!
用 TTimer 應該是會有您說的問題,不過,您可以使用 ThreadTimer 在 NT 下要 1ms 並沒有問題,前題是,沒有其他太占用 CPU 的程式同時執行,並且在 OnTimer 內所作的事是該電腦 1ms 內鐵定可以完成。 利用搜尋工具,很容易可以找到 ThreadTimer 或 MediaTimer 的 VCL 元件,像 LMD-Tools 的免費版本中就有 ThreadTimer ,其 DEMO 中也有多個 ThreadTimer 都是設 1mSec 同時跑,每個優先權設不同,讓使用者可以看看優先權不同的影響。 沒空更新的網頁...
C及指標教學 http://coolsite.to/dllee介紹Shells http://coolsite.to/ushells
------
http://www.ViewMove.com
系統時間:2024-04-27 5:56:25
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!