2009-06-10 6 views
10

ミリ秒(0.001)でタイマー取引をどのように処理することができますか?どのように私達は第二それ自体を扱うことができるか???関数time()は現在の時刻をどのように伝え、コンピュータの電源を先に切ってもどうしますか?

+20

はこの俳句ですか? ... –

+0

私はそれが正当な問題だと思う。たぶん言語の問題?とにかく、私は先に進み、編集しました。 –

+0

ありがとう、私はちょうど初心者です。 – Sherif

答えて

38

http://computer.howstuffworks.com/question319.htm

、バッテリーパワーチップ は、リアルタイムクロック(RTC)チップと呼ばれます。 コンピュータに電源が供給されているかどうかに関係なく、RTCは本質的に常に稼働するクォーツ時計 です。バッテリ はこのクロックに電力を供給します。コンピュータ が起動すると、プロセスの一部は と日付を取得するためにRTCに問い合わせて になります。 のような小さなクォーツ時計は、これは5〜7年間稼働する可能性があります。 小さなバッテリーです。その後、バッテリーを交換する時間は です。

+0

起動時にRTCを照会することについての約+1。 –

0

マザーボードには、クロックがあります。すべてのティックは時間の単位を表します。

より正確に言えば、クロックは通常、所定の周波数で発振する水晶である。いくつかの一般的なCPUクロック周波数は33.33MHzと40MHzです。お使いのコンピュータ(だけでなく、他の ガジェット)で

+0

リアルタイムクロック周波数は、通常、CPUクロック周波数とは完全に無関係です。ほとんどの場合、32.768 KHzのようなものです。 –

9

お使いのPCには、コンピュータの電源が切れている間も絶え間なく動くように、バッテリーで駆動されるhardware clockがあります。 PCはクロックの動作速度を知っているので、秒が経過するタイミングを判断することができます。

最初に、PCは現在の時刻がわからないので(つまり0から数え始めます)、現在の時刻を知らせる必要があります。これはBIOSの設定で設定することができ、 CMOSに記載されているか、またはインターネットを介して取得することができる(例えば、NISTの時計と同期することによって)。

2

メインの質問に答えるために、BIOSの時計にはマザーボードにバッテリーがあります.Jianさんの回答によればそうです。それはマシンがオフになっている時間を維持します。

あなたがそうのように、1000で整数除算を実行して、ミリ秒の値から2番目を得ることができ、私はあなたの2番目の質問は何を考えて答えるために:あなたは私たちがしている方法を求めている場合は

second = (int) (milliseconds/1000); 

その正確さで時間を得ることができる、エステバンの答えを見てください...水晶は一定の時間、例えば0.00001秒で振動します。振動を数える回路を作るだけです。 100,000回の振動に達すると、秒が過ぎてクロックが更新されると宣言します。

このように振動を数えることで精度を得ることができます。使用しているクリスタルの振動の周期よりも高い精度が得られます。

+0

まず、「エステバンの答え」とは何ですか? 2番目に、私は私が誤解したことを尋ねます。私はどのように私はタイマーを毎回そのイベントを発生させるのですか?0.001私はそれを使う方法を尋ねません。私はそれをどうやって作るかについて尋ねます。 – Sherif

+0

2秒の部分が必要な場合は、1秒= 1000ミリ秒の比率を使用します.1/5秒〜200ミリ秒の1/10秒 - 100ミリ秒など... –

3

コンピュータは、あなたと同じように、彼らは時々見るデジタル時計を持っているので、時間を知っています。

新しくコンピュータを購入したり、新しい国に移動したりすると、その時計を設定することができます。コンピュータがインターネットに時刻を尋ねることができます。

コンピュータのユーザーは、現在の時刻を聞くことができます。また、コンピュータに目覚まし時計として機能するように指示することもできます。コンピュータによっては、特定の時間に自分自身をオンにしたり、自分自身をバックアップしたり、お気に入りの曲であなたを目覚めさせることさえできます。

内部的には、コンピュータはミリ秒単位、マイクロ秒単位、時にはナノ秒単位で時刻を伝えることができます。しかし、これは完全に正確ではなく、隣にある2台のコンピュータは、ナノ秒単位で時間に関するさまざまなアイデアを持ちます。しかし、それはまだ役に立つかもしれません。

コンピュータは、今後数ミリ秒間アラームを設定できます。通常、電子メールプログラムについての考えを止めて、あなたのWebブラウザについて考えるのに時間を費やします。その後数ミリ秒後に電子メールに戻るように別のアラームを設定します。

プログラマとして、この機能を使用することもできます。たとえば、ゲームのレベルに時間制限を設定するには、「タイマー」を使用します。または、タイマーを使用して、アニメーションの次のフレームをディスプレイに表示する必要があるかどうかを知ることができます.1秒に25回(つまり、40ミリ秒ごとに)です。

+1

デジタル時計はありません。 – Nosredna

+0

mavricします。あなたは恥じるべき。 –

+0

これは初心者にコンピュータの時間を説明する非常にエレガントな方法です。 +1 –

7

いくつかの要約、およびいくつかの詳細情報:

1)コンピュータは起動時にリアルタイム・クロックを読み込み、そしてそれは、それはその時から内部クロック

2)だ設定するために使用します、コンピュータはCPUクロックのみを使用します。通常はRTCを再読み込みしません。

3)コンピュータの内部時計は、熱的不安定さ、電力変動、秒数の正確な除数を見つける際の不正確さ、割り込みレイテンシ、宇宙線、および月の位相によってドリフトの影響を受けます。

4)クロックドリフトの大きさは、1日あたり数秒(1ヵ月に数十秒または数百秒)のオーダーである可能性があります。

5)ほとんどのコンピュータは、(インターネット上の)タイムサーバーに接続して定期的に時計をリセットすることができます。

6)タイムサーバーを使用すると、精度が数十ミリ秒(通常)以内に向上します。 15分ごとにコンピュータが更新されます。

0

絶対時間は、1970年から秒の32ビットカウンタを使用して古くから測定されます。これは、単にオーバーフローする「2038問題」を引き起こす可能性があります。したがって、現代のWindowsおよびUnixプラットフォーム(これにはBSDベースのMacOSを含む)で使用される64ビットの時間API。

PCユーザーは、深刻なイベントが発生してから絶対時間ではなく時間間隔に関心を持つことがよくあります。コンピュータの一般的な実装では、タイマーと呼ばれることが起こります。これらのタイマーは、PCがウェイクアップ状態、スリープモードの切り替え、スリープからの復帰のためにハードウェアをポーリングする目的を持っていない場合でも実行される可能性があります。インテルのプロセッサー・ドキュメントは、これらについて非常に詳細な情報を提供しています。

関連する問題