
ミリ秒単位で処理を止められる Sleep関数を使ってみたのですが、
時間誤差が、最大で18ms もあり、使い物になりません。
win10で、1ms精度での待ち時間の設定の方法ありますか?
---- 動作確認プログラム ----
#include <windows.h>
#include <stdio.h>
for(j=14; j<48; j++) {
t0 = timeGetTime();
Sleep(j);
dt = timeGetTime() - t0 - j; // 本来なら0になるはず
printf("%d ",dt);
}
の結果が以下の通り、
18 6 6 3 14 13 11 15 10 8 14 6 5 11 3 2 7 1 15 5 13 2 11 16 9 14 7 13 5 10 3 8 1 7
Unixであれば、マイクロ秒単位で処理を止められる usleep関数 があるようですが、Win10では使えません。
No.6
- 回答日時:
No.5です。
既出ですみません。
こちらを試してください。
プロジェクトはコンソールアプリ
#include "stdafx.h"
を
#include <stdio.h>
にする
こちらで10usec単位で設定できます。
https://qiita.com/tobira-code/items/ae0764634f07 …
再度の応答ありがとうございます。
PerformanceCounter 高精度のタイムスタンプ
Waitable Timer 100nsec単位で待ち時間を指定
ですね。参考にさせていただきます。
No.4
- 回答日時:
SetTimer で、タイマーイベント 1ms で作って、
自力でカウントすればどうでしょうか?
SetTimer 自体は最初動作するまで時間がかかったと記憶してます。
No.3
- 回答日時:
No.2
- 回答日時:
usleepは高精度でスリープできる事を保証する訳ではないですけどね。
Unixのタイマの実装は様々。
windowsではTimeBeginPeriodでプロセスのタイマ精度を変更出来る。
1 msは多分無理。そういうのはリアルタイムOSの領分。
回答ありがとうございます
>1 msは多分無理。
>そういうのはリアルタイムOSの領分。
やっぱ、そうなんですかね。
Win10でなら、
timeGetTime() で時刻をモニタリングして
設定時刻までCPUの無駄使いしながら待つ
しか方法はないのでしょうかね。
No.1
- 回答日時:
みたいなこと?
「μs 単位で指定できる」からといって「μs 単位で制御できる」ことは意味しないけど.
応答ありがとうございます。
>「μs 単位で指定できる」からといって「μs 単位で制御できる」ことは意味しないけど.
今回の質問も、Sleep() がms単位で指定できるが、制御できないので質問しているわけですので、当然、承知しています。
で、
win10で、1ms精度での待ち時間の設定の方法
ご存じならご教示お願いします
最悪、
t0 = timeGetTime() + dt;
while(t=timeGetTime() < t0)
;
で時間待ちするしかないのかしらとも思っています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
ファイルがあるのにエクスプローラでは存在しない
C言語・C++・C#
-
c言語 プログラムのエラー
C言語・C++・C#
-
S-JIS → JIS コード変換するには
C言語・C++・C#
-
-
4
C言語 コマンドプロンプトについて。
C言語・C++・C#
-
5
数字の単位 何故10m>0.003なのかわかりません 数字の単位で何故10mより0.003の方が小さ
C言語・C++・C#
-
6
visual studio 2019において、宣言していない変数があるのにエラーなくビルド出来ました
C言語・C++・C#
-
7
C言語でif文が予想と違う動きをする件について7
C言語・C++・C#
-
8
c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。
C言語・C++・C#
-
9
C#の基本文法が詳しく書かれている教科書的な本ありますか
C言語・C++・C#
-
10
良いプログラムの条件
C言語・C++・C#
-
11
stdio.hのバッファについて。
C言語・C++・C#
-
12
悪い、ダメなプログラム
C言語・C++・C#
-
13
C言語初心者です、、、お助けください
C言語・C++・C#
-
14
int16_t の _t は何?
C言語・C++・C#
-
15
C言語について。
C言語・C++・C#
-
16
c言語でユーザ関数を利用して複素数のべき乗と絶対値の数列を計算するプログラムが作りたいです。
C言語・C++・C#
-
17
C言語です このプログラムに自分で定義した関数を入れたいです! アドバイスください!
C言語・C++・C#
-
18
C言語について。
C言語・C++・C#
-
19
c言語の問題の説明、各所ごとに
C言語・C++・C#
-
20
C言語について。
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DoEvents関数って何?
-
SQLの速度をあげるには・・・
-
小数点を含む数値かどうか判断...
-
ノットイコールを教えて下さい
-
トリガーになるイベントが来た...
-
あっち向いてホイのプログラム...
-
Excel(VBA)でSetTimer関数を使...
-
Excelでのセル内容の高速消去方法
-
VBでの簡易電卓の作成(減算方...
-
テキストファイルの空行をスキ...
-
キャッシュを意識したプログラ...
-
ソケットからの入力をWaitForMu...
-
C言語 再帰処理のメリットとデ...
-
Excel VBA データ削除の高速化
-
エクセルVBA 時間抜けの取得
-
「単体テスト」に関する深刻な...
-
基本情報技術者試験詳しい方へ...
-
符号付きにすべきか、符号なし...
-
VC++2010 GDIオブジェクトの解...
-
絶対パスの取得について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DoEvents関数って何?
-
小数点を含む数値かどうか判断...
-
Excelでのセル内容の高速消去方法
-
絶対パスの取得について
-
SQLの速度をあげるには・・・
-
テキストファイルの空行をスキ...
-
VBでの簡易電卓の作成(減算方...
-
C言語:関数を使うメリットとデ...
-
ノットイコールを教えて下さい
-
ナップザック問題?をエクセル...
-
If Not c Is Nothing Then ~延...
-
win10で、正確な待ち時間の作り方
-
実行時のCPU使用率を増やしたい
-
ソートにかかった時間を測りたい。
-
.netからexcel操作の処理速度が...
-
Excel(VBA)でSetTimer関数を使...
-
VC++2010 GDIオブジェクトの解...
-
WebBrowserの読み込み待ちの処...
-
テキスト処理の速度の速い言語
-
C言語 再帰処理のメリットとデ...
おすすめ情報