dポイントプレゼントキャンペーン実施中!

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

A 回答 (4件)

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

    • good
    • 0

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

    • good
    • 0

 パソコンで1ms間隔処理はお勧めできません。


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

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

timeGetTime()を使えばミリ秒まで取得できます。


取得できる時間分解能には、OS依存性があるようです。
timeBeginPeriod() timeEndPeriod()を使って、最小分解能を調整しましょう。
http://social.msdn.microsoft.com/Forums/ja-JP/vc …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!