![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
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を参考に、機材、環境レベルでアプローチしてみたいと思います。
ありがとうございました。
No.2
- 回答日時:
No.1
- 回答日時:
たとえタイマーがマイクロ秒単位の精度が出たとしてもマルチタスクOSであるXPが勝手に一定時間ごとにタスクを切り替えるので意味ないと思いますが?
標準的なWindowsにはOSの制約から使い物になるマイクロ秒単位のタイマーは無いと思います。
PerformanceCounterを使っても昨今の動的にクロックをブーストするCPUやマルチコアCPUのお陰でまともに計測できませんし。
なぜ必要なのかを、まず説明してもらうと答えが得られやすいと思います。
ご返事ありがとうございます。
実は業務で連続的に16bitのデータを送る通信システムを作成しているのですが、その送信するデータとデータの間のインターバル的な時間をマイクロ秒単位で管理したいのです。
守秘義務が絡むのであまり詳しくお話できなくて申し訳ありません。。。
お探しの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の通信
-
H8マイコンのプロテクト方法
-
PIC16F877内蔵USARTが受信しない
-
組み込みマイコンでのソフトウ...
-
このレジの並び方は間違ってま...
-
Macターミナルで実行中のプログ...
-
C言語で、メモリを解放しないで...
-
VBAの配列サイズとメモリに関して
-
VBA kernel32 の意味
-
VBSの処理中一旦処理を止めて再...
-
VBSでのSendKeysでの画面の最小化
-
バックグラウンドのプロセスの...
-
C言語で途中までしか、プログラ...
-
C# シリアル通信でデータ受信...
-
SQLの速度をあげるには・・・
-
recv関数でフリーズしてしまう
-
Excelでのセル内容の高速消去方法
-
TCP/IP通信時のサーバーからの受信
-
メッセージBOXの「はい」「いい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PLCとPCの通信
-
組み込みマイコンでのソフトウ...
-
レジスタマップって何ですか?
-
PICマイコンのCLRWDT動作について
-
シリアル通信でのデータ取りこぼし
-
マイコンからSDカード内のテキ...
-
機械語のレジスタペアについて
-
H8S2368マイコンのTCSR_1レジス...
-
マイクロ秒で精度が出るタイマー
-
SH7144でパルス幅を測定したい。
-
フラッシュメモリへの書き込み
-
RTCで取得した値をLCDに表示したい
-
システムコールを使わずに画面...
-
グラフィックLCD SG12...
-
2つのアナログ信号が一致して...
-
カーブフィットを行うプログラ...
-
TCNTとTIFRの意味
-
printf文で変数のアドレスを表...
-
printfで0x600000番地の次の0x6...
-
PICマイコンでプログラム!パソ...
おすすめ情報