こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

ストップウォッチ

油圧シリンダの弁をADボードを用いて外乱(構造物の地震による揺れ)を採取し、それに対してPID制御で調節する研究をしています。この制御は、あらかじめサンプリングクロックを設定し、あるサンプリング数に達したら、その度にswitch文を用いてを制御イベントが発生するプログラムとなっています。しかし、大まかには出来たのですがサンプリング周期がまだ目標には達していなく(目標サンプリング周期1ms)、プログラムをいじっても本当に改善されているのかわかりません。
そこで、このイベントが1回発生するために要する時間を知るため、制御ソフトのダイアログ上に0.001秒オーダーのストップウォッチを付けたいと思っていますが、何か参考になるサイト等はございますか。
上述の通り、サンプリング周期が数msオーダーとなるので、0.001秒オーダーのものが必要となります。
ちなみに使用言語はVC6のMFCを使用しています。また、PC環境等は影響するのでしょうか?
よろしくお願いします。

投稿日時 - 2009-10-29 10:44:09

QNo.5405552

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(4)

ANo.4

 やりたい事が良く分からないけど、タイマーで割り込みを掛けたらどうですか。

投稿日時 - 2009-10-29 22:36:27

ANo.3

間隔を測定するだけなら、QueryPerformanceFrequencyとQueryPerformanceCounterを使うのがよいかと思います。

投稿日時 - 2009-10-29 15:44:44

ANo.2

 パソコンで1ms間隔処理はお勧めできません。
 実機はSHやH8S等のマイコンにITRON等の組合せで実装される
前の実験として使用される前提で参考URLをお勧めします。
 マルチメディアタイマーならほぼ正確な1ms処理が出来そうです。

参考URL:http://lcl.web5.jp/prog/mmtimer.html

投稿日時 - 2009-10-29 11:44:51

ANo.1

timeGetTime()を使えばミリ秒まで取得できます。
取得できる時間分解能には、OS依存性があるようです。
timeBeginPeriod() timeEndPeriod()を使って、最小分解能を調整しましょう。
http://social.msdn.microsoft.com/Forums/ja-JP/vcgeneralja/thread/5a98c5fa-09d2-4b26-ba3b-6b851ac17a94

投稿日時 - 2009-10-29 11:43:26

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-