ミリ秒単位で処理を止められる 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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- Excel(エクセル) エクセルVBA マクロ処理中のポップアップメッセージについて 1 2023/08/04 21:34
- その他(プログラミング・Web制作) Pythonにおける物理のシミュレーションでの単位変換について 2 2023/06/02 17:11
- その他(開発・運用・管理) bashで15分前と現在のエポックタイムの時間を取得したい 2 2023/02/01 19:10
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- 仕事術・業務効率化 効率的な勉強方法(分野問わず)を教えてください 1 2023/08/16 01:33
- 物理学 時間を語るなら、(複数の時間の正体)を知る必要が有る。 1 2023/02/16 22:14
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- C言語・C++・C# C言語 3 2022/10/04 15:07
このQ&Aを見た人はこんなQ&Aも見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
あなたにとってのゴールデンタイムはいつですか?
一週間の中でもっともテンションが上がる「ゴールデンタイム」はいつですか? その逆で、一週間でもっとも落ち込むタイミングでも構いません。 よかったら教えて下さい!
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
うちのカレーにはこれが入ってる!って食材ありますか?
カレーって同じルーから作っても、家庭によって入っているものや味が微妙に違っていて面白いですよね! 「我が家のカレーにはこれが入ってるよ!」 という食材や調味料はありますか?
-
<unistd.h>をVisualStudioでつかえるようにする
C言語・C++・C#
-
VCでウエイトをミリ秒でかけられるんですが、μ秒でのやり方わかりません
C言語・C++・C#
-
msec単位のWait Timerが作れない!
C言語・C++・C#
-
-
4
C言語での引数の省略方法
C言語・C++・C#
-
5
関数から配列を返すには?
C言語・C++・C#
-
6
sleep関数の精度について
C言語・C++・C#
-
7
timeBeginPeriodとtimeEndPeriod関数について
C言語・C++・C#
-
8
マルチメディアタイマーの使用方法
C言語・C++・C#
-
9
既定のコンストラクタがない?
C言語・C++・C#
-
10
sys/time.hのインクルードができない
C言語・C++・C#
-
11
WriteFile()でのデータ送信ができなくなる
C言語・C++・C#
-
12
win32api複数のタイマーを同時に処理するには
C言語・C++・C#
-
13
適切な変換関数が存在しない???
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelでのセル内容の高速消去方法
-
win10で、正確な待ち時間の作り方
-
テキストファイルの空行をスキ...
-
DoEvents関数って何?
-
VB.NETにおける二値化処理の高速化
-
SQLの速度をあげるには・・・
-
「単体テスト」に関する深刻な...
-
WindowsMessage(ウィンドウメッ...
-
小数点を含む数値かどうか判断...
-
絶対パスの取得について
-
ナップザック問題?をエクセル...
-
Excel VBAにて、2GB超の点群デ...
-
WebBrowserの読み込み待ちの処...
-
プログラム上のCPU稼働率低減に...
-
Macターミナルで実行中のプログ...
-
バックグラウンドのプロセスの...
-
C# シリアル通信でデータ受信...
-
C言語で、メモリを解放しないで...
-
「キャンセル」ボタン付きの処...
-
C#でのbatファイル実行結果取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
win10で、正確な待ち時間の作り方
-
Excelでのセル内容の高速消去方法
-
DoEvents関数って何?
-
小数点を含む数値かどうか判断...
-
絶対パスの取得について
-
プログラム上のCPU稼働率低減に...
-
SQLの速度をあげるには・・・
-
プログラミングの授業でPython...
-
If Not c Is Nothing Then ~延...
-
ナップザック問題?をエクセル...
-
ノットイコールを教えて下さい
-
テキストファイルの空行をスキ...
-
実行時のCPU使用率を増やしたい
-
Excel(VBA)でSetTimer関数を使...
-
あっち向いてホイのプログラム...
-
基本情報技術者試験詳しい方へ...
-
VBでの簡易電卓の作成(減算方...
-
キャッシュを意識したプログラ...
-
再帰処理について
-
Excel VBAにて、2GB超の点群デ...
おすすめ情報