No.1
- 回答日時:
たとえタイマーがマイクロ秒単位の精度が出たとしてもマルチタスクOSであるXPが勝手に一定時間ごとにタスクを切り替えるので意味ないと思いますが?
標準的なWindowsにはOSの制約から使い物になるマイクロ秒単位のタイマーは無いと思います。
PerformanceCounterを使っても昨今の動的にクロックをブーストするCPUやマルチコアCPUのお陰でまともに計測できませんし。
なぜ必要なのかを、まず説明してもらうと答えが得られやすいと思います。
ご返事ありがとうございます。
実は業務で連続的に16bitのデータを送る通信システムを作成しているのですが、その送信するデータとデータの間のインターバル的な時間をマイクロ秒単位で管理したいのです。
守秘義務が絡むのであまり詳しくお話できなくて申し訳ありません。。。
No.2
- 回答日時:
No.3ベストアンサー
- 回答日時:
>実は業務で連続的に16bitのデータを送る通信システムを作成しているのですが、その送信するデータとデータの間のインターバル的な時間をマイクロ秒単位で管理したいのです。
>守秘義務が絡むのであまり詳しくお話できなくて申し訳ありません。。。
インターバルタイムが最低限の時間(オーバーを許容)なら問題ないと思いますが、そのインターバルタイムを死守しないとマズイならWindowsOSでは無理ですので、別のOSで特にリアルタイム性がメインのリアルタイムオペレーティングシステム(RTOS)を捜すべきだと思います。
http://ja.wikipedia.org/wiki/%E3%83%AA%E3%82%A2% …
インターバルタイムのオーバーが許容されても、QueryPerformanceCounterとPerformanceCounterは最近のCPUのターボ・ブーストなどのためで不正確になっています。
ターボ・ブーストとは。
http://www.pasonisan.com/customnavi/cpu_corei/10 …
最近のCPUの場合はこのターボ・ブーストの動作状況次第でQueryPerformanceCounterの値が実際の経過時間とズレてしまうのです。
なので、ブーストしないCPUなどの選択も考えないといけないでしょう。
QueryPerformanceCounterを実時間計測には使えない
http://d.hatena.ne.jp/shiku_otomiya/20100218/p1
あるいは、タイマカウントーを外部のマイコンに任せるとか通信自体を外部のマイコンにさせるとかすれば正確な動作は期待できます。
ご返事ありがとうございます。
どうやらWindowsOS単体では実装は難しそうですね。。。
ある程度のオーバーは許容範囲なので現状のままで行きたいと思います。
それでも厳しくなりましたら教えていただいたURLを参考に、機材、環境レベルでアプローチしてみたいと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# gettimeofday() と localtime_r() を使って現在の日時をマイクロ秒単位で表 2 2022/10/26 21:15
- その他(プログラミング・Web制作) ラダー図で0秒のタイマーが複数ある理由は何ですか? 1 2023/05/31 22:03
- その他(開発・運用・管理) Windows serverでマルチキャスト通信の確認をしたいです。MicrosoftよりMPING 1 2023/03/31 01:05
- Windows 7 Windows7でMicrosoft VirtualPC2007 SP1を使用する 9 2022/11/17 13:12
- その他(ソフトウェア) OMRON PLC CP2Eのプログラム 1 2022/11/24 10:57
- テレビ プライベート・ビエラのモニターのみが壊れた場合、他のモニターでチューナー接続して使えますでしょうか? 1 2022/10/23 13:06
- Excel(エクセル) エクセル終了が遅くなった 7 2022/04/19 12:11
- C言語・C++・C# win10で、正確な待ち時間の作り方 6 2023/02/14 18:28
- ドライブ・ストレージ SSDからHDDへのOSを含んだ換装 12 2023/01/19 03:30
- ダイヤルアップ Raspberry Piでアナログモデム経由で音声再生 1 2022/05/20 18:01
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PLCとPCの通信
-
フラッシュメモリへの書き込み
-
TCNTとTIFRの意味
-
カーブフィットを行うプログラ...
-
PICマイコンでプログラム!パソ...
-
大学工学部のCプログラムの授業...
-
Macターミナルで実行中のプログ...
-
VBAの配列サイズとメモリに関して
-
VBSで応答不要のメッセージボッ...
-
TCP/IP通信時のサーバーからの受信
-
DoEvents関数って何?
-
C# の OpenFileDialog
-
プロセスIDの取得方法について
-
C言語で、メモリを解放しないで...
-
C# シリアル通信でデータ受信...
-
sil_rew_memのメモリアクセスに...
-
左シングルクリックとダブルク...
-
WSH(VBScript)でアプリケーショ...
-
GetDlgItemInt( ) c++
-
C言語primeについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PLCとPCの通信
-
レジスタマップって何ですか?
-
SH7144でパルス幅を測定したい。
-
組み込みマイコンでのソフトウ...
-
アセンブラプログラム
-
マイクロ秒で精度が出るタイマー
-
機械語のレジスタペアについて
-
シリアル通信でのデータ取りこぼし
-
H8マイコンのプロテクト方法
-
フラッシュメモリへの書き込み
-
マイコンからSDカード内のテキ...
-
TCNTとTIFRの意味
-
グラフィックLCD SG12...
-
2つのアナログ信号が一致して...
-
古い計量機器からのrs232cを使...
-
USBハブの自作について
-
RTCで取得した値をLCDに表示したい
-
printf文で変数のアドレスを表...
-
arduinoを使って重さ計測
-
マイコンSPI入門
おすすめ情報