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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パソコンに何かが勝手にダウン...
-
VB.NETでボタンのクリックイベ...
-
VBA中断モードの解除
-
Excel実行時エラー-2146959355?
-
PC版のMinecraftが応答なしにな...
-
EXCEL-VBAでコマンド...
-
C++で関数を画面に描写するには...
-
たまにマクロを実行できないと...
-
至急!RedmiPadを文鎮化させて...
-
ATOMは何の略ですか
-
初めてパソコンを買いました。
-
Pythonについて
-
latexでのエラー
-
rubyを実行してもすぐウィンド...
-
パソコンのスクリーンセーバー...
-
メイプルストーリーにログイン...
-
Craving Explorerのバージョン...
-
Apacheのレジストリ
-
A-oneのラベル屋さんについて
-
QMPでのメッセージ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パソコンに何かが勝手にダウン...
-
Excel実行時エラー-2146959355?
-
PC版のMinecraftが応答なしにな...
-
管理者として実行を毎回すると...
-
VB.NETでボタンのクリックイベ...
-
パソコンのスクリーンセーバー...
-
Windows10 で青鬼を遊びたいの...
-
エクセルVBA、ステップモードと...
-
latexでのエラー
-
プログラム実行中に強制停止さ...
-
eclipseで、「ポート番号が使用...
-
COBOLで集団項目から符号...
-
EXCEL-VBAでコマンド...
-
ATOMは何の略ですか
-
実行中のVBSをタスクバーに非表...
-
起動したアプリケーションを最...
-
VBA コントロールパネルの機能...
-
VBA中断モードの解除
-
chatGPTで次々と質問をしていく...
-
pythonで他のアプリを操作する...
おすすめ情報