A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
ちなみに、リアルタイムOSと言われるμTronも、結局のところOSの即応性が高いだけで、リアルタイムではありません。
最近はLinuxもリアルタイムOSと呼ばれていますが。。。
地点Aから5ミリ秒後にこれを実行!
ってやっても、関数のオーバヘッドや命令文のオーバヘッド、命令の実行時間、そのたもろもろの要因により、そのように実行できる保証はありません。
C言語でもこれをすることは不可能ではありませんが、現実的ではありません。
もちろんアセンブラを使っても同じことが言えます。
メインメモリへのアクセス速度、CPUの実行速度なんてスーパースケラーの今のCPUでは計算で求めれるものではありません。
(Intelのx86系CPUはもちろんARM系CPUでも)
割り込みの有無やWDTなど様々な要因があります。
HDDなどへのメモリスワップがあったらさらに実行時間を指定することはほぼ不可能です。
本気でするならCPUの選別から始める感じでハードウェアを組み立てですかねー
不可能ではないと思いますが、現実的ではないと思います。
正確な時刻を保持しているとされている原子時計ですら誤差がありますからね。
何千年に1秒レベルではありますが。
No.4
- 回答日時:
実際の時間って何ですか?
No.3さんが言われているように、ハードウェアの問題であってソフトウェアの問題ではありません。
基本的にどんなハードウェアでも水晶発振を分周して時刻を演算しているため、正確な時間を刻むことはできません。
どういうことかというと、誤差があっても誤差を認識することができないからです。
そのため、インターネット上ではNTPサーバなどの時刻サーバが存在するわけです。
WindowsなどのOSはマイクロソフトの時刻サーバに定期的に接続して時刻を補正しています。
携帯やスマホもそれぞれのキャリアの時刻サーバに接続していますね。
GPSシステムと接続して時刻を補正するのもありかもしれません。
ーーーーーーーーーーーーーーー
正確性というよりも、細かい単位で取得したいという意味なら、ミリ秒以下の精度はありません。
C言語というより、OSの時刻保持であったり、ハードウェアの時刻保持の単位を割ることになるので。
それより細かい精度を求めるのであれば、ハードウェアを新規で作るしかありません。
作ったとしても、それを確認する手段は、金銭的にも、正確性という意味でも現実的でないと思います。
新しいハードウェアのWDTでミリ秒以下の時刻と精度を必要とするなら別ですが。
No.3
- 回答日時:
精度が必要なら言語でなくハードウェアに注目すべきです。
マイコンシステムなら可能ですがハードとコマンドをセットで作るしかないでしょう。
水晶→プリスケーラ→カウンタを使いその出力を割り込みで実行するようにプログラムすれば出来ます。
No.2
- 回答日時:
そのタイトル「時間を測る C言語」で検索して、出てくるものを順番に読んでみては?
C言語標準以外にも、実行環境(OS等)依存、C言語のバージョン依存など、いろんな方法があります。
あとは、どこまでの精度を求めているかによっても使いわける必要があります。
No.1
- 回答日時:
実行するタイミングを正しく認識していれば、精度高く計測可能です。
そんなわけでC言語そのものが高精度な時間計測には向いていません。
アセンブリ言語を組み込んでみましょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 物理学 フィゾーの実験に関する問題。 歯車と反射鏡の間の距離L=3 km、波数N=1000とする。単位時間当 2 2022/11/21 19:45
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- 婦人科の病気・生理 病院で、生理不順のため基礎体温を毎日つけるように言われました。 しかしズボラな性格の私は、何日間も測 3 2023/01/27 23:48
- 物理学 アインシュタインの相対論は、3者間でどういう誤魔化しも効かなくなりますか? 2 2022/05/06 21:23
- 物理学 鏡の中の時計について。 4 2023/01/18 02:32
- ウォーキング・ランニング 効果的なジョギング(またはランニング) 6 2022/11/04 18:06
- 医療・介護・福祉 看護学生です。バイタルサインについて教えて下さい。 バイタルサインは体温→脈拍→呼吸数→血圧…のよう 1 2023/07/02 13:35
- その他(悩み相談・人生相談) 自転車で3キロ運動した後血圧を測ったら140ありました。2時間時間を置いてから測ったのですが関係ある 3 2023/05/25 18:07
- 数学 測度論の問題です。 2 2022/07/26 20:34
- 妊活 基礎体温を今月から測っております。 最近、夜中の2時や3時に目が覚めることが多く、仕事で起きるのは朝 1 2023/01/30 21:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パソコンに何かが勝手にダウン...
-
Excel実行時エラー-2146959355?
-
パソコンのスクリーンセーバー...
-
latexでのエラー
-
VBA 作成中のプログラムを使っ...
-
VBA コントロールパネルの機能...
-
管理者として実行を毎回すると...
-
eclipseで、「ポート番号が使用...
-
EXCEL-VBAでコマンド...
-
chatGPTで次々と質問をしていく...
-
ランタイム関数とは何ですか?
-
PC版のMinecraftが応答なしにな...
-
Flashゲームをホームページで楽...
-
VB.NETでボタンのクリックイベ...
-
プログラム実行中に強制停止さ...
-
VB.NETを実行するにはどうした...
-
エクセルVBA、ステップモードと...
-
ドライブロック解除方法について
-
COBOLで集団項目から符号...
-
VSコード
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パソコンに何かが勝手にダウン...
-
chatGPTで次々と質問をしていく...
-
Excel実行時エラー-2146959355?
-
PC版のMinecraftが応答なしにな...
-
至急!RedmiPadを文鎮化させて...
-
VSコード
-
管理者として実行を毎回すると...
-
エクセルVBA、ステップモードと...
-
VB.NETでボタンのクリックイベ...
-
eclipseで、「ポート番号が使用...
-
EXCEL-VBAでコマンド...
-
プログラミングについてです。...
-
パソコンのスクリーンセーバー...
-
pythonで他のアプリを操作する...
-
プログラム実行中に強制停止さ...
-
latexでのエラー
-
プロパティの値が不正ですって...
-
Flashゲームをホームページで楽...
-
起動したアプリケーションを最...
-
「管理者として実行」された場...
おすすめ情報