ミリ秒 (0.001) でタイマー処理を行う方法 必要に応じて秒を分割する方法 ?? 秒自体をどのように処理できますか???
7 に答える
http://computer.howstuffworks.com/question319.htm
お使いのコンピュータ (および他のガジェット) では、バッテリがリアルタイム クロック (RTC) チップと呼ばれるチップに電力を供給します。RTC は本質的に、コンピューターに電源が供給されているかどうかに関係なく、常に動作するクォーツ時計です。この時計の電源は電池です。コンピュータが起動すると、プロセスの一部として RTC にクエリを実行して正しい時刻と日付を取得します。このような小さなクォーツ時計は、小さな電池で 5 ~ 7 年間動作する可能性があります。次に、バッテリーの交換時期です。
お使いの PC にはハードウェア クロックが搭載されており、バッテリで駆動されるため、コンピューターの電源がオフのときでも刻々と動き続けます。PC はクロックの実行速度を認識しているため、1 秒がいつ経過するかを判断できます。
最初、PC は現在時刻を認識していない (つまり、ゼロからカウントを開始する) ため、現在時刻を通知する必要があります。これは、BIOS設定で設定してCMOSに保存するか、インターネット経由で取得できます (たとえば、 NISTのクロックと同期することにより)。
要約と詳細情報:
1) コンピュータは起動時にリアルタイム クロックを読み取り、それを使用して内部クロックを設定します。
2) それ以降、コンピュータはその CPU クロックのみを使用します。(通常は) RTC を再読み取りしません。
3) コンピューターの内部クロックは、温度の不安定性、電力の変動、秒単位の正確な除数を見つける際の不正確さ、割り込みの待ち時間、宇宙線、月の満ち欠けなどにより、ドリフトする可能性があります。
4) 時計のずれの大きさは、1 日あたり数秒 (1 か月あたり数十秒または数百秒) のオーダーである可能性があります。
5) ほとんどのコンピュータは、(インターネット経由で) タイム サーバーに接続して、定期的に時計をリセットすることができます。
6) タイムサーバーを使用すると、精度を数十ミリ秒以内に上げることができます (通常)。私のコンピュータは 15 分ごとに更新されます。
コンピュータが時間を知っているのは、あなたと同じように、デジタル時計を時々見ているからです。
新しいコンピューターを入手したり、新しい国に引っ越したりすると、その時計を設定したり、コンピューターがインターネットに時刻を尋ねたりして、速度が遅くなったり速くなったりするのを防ぐことができます。
コンピュータのユーザーは、現在の時刻を尋ねたり、コンピュータを目覚まし時計として機能させたりすることができます。一部のコンピューターは、特定の時間に電源を入れてバックアップしたり、お気に入りの曲で目を覚ますことさえできます。
内部的には、コンピューターはミリ秒、マイクロ秒、場合によってはナノ秒単位で時間を知ることができます。ただし、これは完全に正確というわけではなく、2 台のコンピューターを隣り合わせにすると、ナノ秒単位の時間について異なる考えが得られます。しかし、それはまだ役に立ちます。
コンピューターは、数ミリ秒後にアラームを設定できます。これは通常、電子メール プログラムのことを考えるのをやめて、Web ブラウザーのことを考えるのに時間を費やすべき時を知るためです。次に、別のアラームを設定して、数ミリ秒後に電子メールに戻るようにします。
プログラマーもこの機能を使用できます。たとえば、「タイマー」を使用して、ゲーム内のレベルに時間制限を設定できます。または、タイマーを使用して、アニメーションの次のフレームをいつディスプレイに表示するかを指定することもできます。おそらく、1 秒間に 25 回 (つまり、40 ミリ秒ごと) です。
主な質問に答えるために、Jianの答えが言うように、BIOSクロックにはマザーボードにバッテリーがあります。それは、マシンがオフのときに時間を保ちます。
2 番目の質問に答えるには、整数を 1000 で除算することにより、ミリ秒の値から 2 番目の値を取得できます。次のようにします。
second = (int) (milliseconds / 1000);
どうすればその精度で時間を取得できるかを尋ねている場合は、Esteban の回答を見てください...水晶振動子は特定の時間、たとえば 0.00001 秒で振動します。振動をカウントする回路を作るだけです。100000 回の振動に達すると、1 秒が経過したと宣言し、時計を更新します。
このように振動を数えることで、精度を得ることができます...使用しているクリスタルの振動周期よりも高い精度です。
マザーボードには時を刻む時計があります。各ティックは時間の単位を表します。
より正確には、時計は通常、特定の周波数で振動する水晶振動子です。いくつかの一般的な CPU クロック周波数は 33.33 および 40 MHz です。
絶対時間は、1970 年から 32 ビットの秒カウンターを使用して古い方法で測定されます。これにより、単にオーバーフローする「2038 年問題」が発生する可能性があります。そのため、最新の Windows および Unix プラットフォーム (これには BSD ベースの MacOS が含まれます) で使用される 64 ビット時間 API が使用されます。
多くの場合、PC ユーザーは重大なイベントが発生してからの絶対時間ではなく、時間間隔に関心があります。コンピューターの一般的な実装には、まさにそれを可能にするタイマーと呼ばれるものがあります。これらのタイマーは、PC がハードウェアのウェイクアップ ステータスのポーリング、スリープ モードの切り替え、またはスリープからの復帰を目的としていない場合でも実行される可能性があります。Intel のプロセッサのドキュメントでは、これらについて非常に詳細に説明されています。