1ミリ秒未満の間隔でイベントを発生させるには?

解決


おおさわ  2004-07-10 06:02:19  No: 9845

こんにちは。おおさわと申します。
タイトルのとおり、1ミリ秒未満の間隔でイベントを発生させる方法がわかりません。
Timer コンポーネントなら、 Interval プロパティを調整すれば最短1ミリ秒までの間隔でイベントを発生させられるのですが、
今回私はオシロスコープ的なプログラムを作りたいので、1ミリ秒より短い間隔で発生をさせたいのです。
どなたかご教授お願いいたします m(-_-)m

環境は、Delphi 7 pro / WindowsXP です。
ちなみに CPU のクロック数は 2.4[GHz] なのですが、これも関係してくるでしょうか?


jok  2004-07-10 07:42:54  No: 9846

Windows のようなマルチタスク、イベントドリブンなOSでは、たとえ1ミリ秒
でも正確な時間間隔で何かをするのは不可能だと思います。精度にもよりますけど。


HOta  2004-07-11 01:57:28  No: 9847

QueryPerformanceCounterがありますが、OS上無理があります。


おおさわ  2004-07-16 04:56:03  No: 9848

返信ありがとうございます。
なるほど。無理なのですね。OTL

もう一つ質問があるのですが、
音声のサンプリングなどのような場合は時間間隔はどのようにしているのでしょうか?
サウンドレコーダは 44.1[kHz](=22.7[μ秒] 間隔) あたりでサンプリングできているのですが、これはどのように実現すればよいのでしょうか。
何度も質問して申し訳ありません。


せれろん  2004-07-16 06:45:34  No: 9849

Pentium CPUならば、RDTSC (Read Time-Stamp Counter)で μ秒の時間間隔も測定可能です。


jok  2004-07-16 09:00:48  No: 9850

> サウンドレコーダは 44.1[kHz](=22.7[μ秒] 間隔) あたりでサンプリングできているのですが

それはサウンドカードなどのハードウェアがやっているんじゃないですか。

> 今回私はオシロスコープ的なプログラムを作りたいので

こういうことをしたいなら、それ用のボード(A/D変換)を購入するのがいいと
思います。


おおさわ  2004-07-17 05:12:54  No: 9851

>jok さん
あっ!サウンドカードの方がやっていたのですか。
確かにそうすると実現できますね。
すみません。まだまだ無知なもので(汗。出直してきます。

>せれろん さん
RDTSC ですか。そのようなものがあるとはまったく知りませんでした(汗
[μ秒] とはかなり短いですね(驚。少しぐぐってみます。

返信ありがとうございました。ようやく解決しました。
まだまだ Delphi に関しては知らない点が多いので、
これからもよろしくお願いいたします。m(__)m


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加