我想用資料獲取卡(6024e)的計時器實現如dos下面的計時器中斷,行的通嗎?

 

windows2000下面進行即時控制系統的開發比較困難,主要是對於基於ring0級別的諸如中斷訪問等操作實現困難,現在需要在win2000下面控制二級倒立擺,那麽就遇到了這個問題,如果用迴圈來實現對控制器的寄存器刷新吧,那windows的其他應用程式如何運行?而且長時間的運行迴圈程式也不穩定,可能造成系統的崩潰,所以我希望應用外部的計時器來類比如dos環境下0x1ch中斷(計時器中斷)的功能,具體如下: <?:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

1、爲板卡上的計時器初始化,每6ms觸發一次;

2、每觸發一次,應用程式都能收到相應的消息;

3、應用程式收到相關的消息,進行處理相關程式;

簡單的說就是用板卡的計時器進行dos計時器的類比,不知道上述方法可行不可行,謝謝!

 

當然如果有了諸如pci6024e 等低價位資料獲取卡,那麽在運行倒立擺控制程式的同時還可以運行其他資料獲取控制程式,這樣就比迴圈來得更好一些 ,衷心的希望得到你們的答復,謝謝

keiranwei38063.8070949074

[QUOTE=keiranwei] 

windows2000下面進行即時控制系統的開發比較困難,主要是對於基於ring0級別的諸如中斷訪問等操作實現困難,現在需要在win2000下面控制二級倒立擺,那麽就遇到了這個問題,如果用迴圈來實現對控制器的寄存器刷新吧,那windows的其他應用程式如何運行?而且長時間的運行迴圈程式也不穩定,可能造成系統的崩潰,所以我希望應用外部的計時器來類比如dos環境下0x1ch中斷(計時器中斷)的功能,具體如下: <?:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

1、爲板卡上的計時器初始化,每6ms觸發一次;

2、每觸發一次,應用程式都能收到相應的消息;

3、應用程式收到相關的消息,進行處理相關程式;

簡單的說就是用板卡的計時器進行dos計時器的類比,不知道上述方法可行不可行,謝謝!

當然如果有了諸如pci6024e 等低價位資料獲取卡,那麽在運行倒立擺控制程式的同時還可以運行其他資料獲取控制程式,這樣就比迴圈來得更好一些 ,衷心的希望得到你們的答復,謝謝

[/QUOTE]

好像是對岸的朋友,不少特別的名詞。

我覺得你的應用在Windows的大架構下要做到即時控制不太容易。利用6024E上的counter產生固定6ms的even t似乎可行,但你的上層程式還是掛在Windows下,等於又回到原點。

這類應用通常直接使用real-time OS會比較簡單,如NI的PXI real-time OS,但價格真的是很貴。