2016-08-09 15 views
0

リアルタイムクロックとタイマーを実装して、このような画面の現在の時刻にプリントしたいと考えています。 : "時間:分:秒":組み込みプログラミング。リアルタイムクロック.Cプログラミングの実装

 While(1){ 
     .....Do sth 
     sleep(1); 
     .....Do sth 
     } 

と1秒のパスの尺度については、その後

 seconds+=1; 

は、それを使用しても安全ですか?

+0

[this](http://stackoverflow.com/questions/3673226/how-to-print-time-in-format-2009-08-10-181754-811) – Hedron

+0

と重複している可能性があります。 。しかし、このフォーマットがQNXのようなRTOSで動作するかどうかはわかりません。私は埋め込みシステムで過去に経験を持っていないので。 – alphjheon

+0

*「使用するのは安全ですか?」* - 「安全」*の意味を明確にしてください。 – sawdust

答えて

1

特定の組み込みシステムでsleep(1)がシステムを1秒間スリープ状態にするかどうかをチェックする必要があります。私が使用している組み込みボードの多くでは、スリープはミリ秒単位で引数をとります。 1秒間スリープするにはsleep(1000)を使用する必要があります。

精度についてあまり心配していない場合は、この方法を使用できます。ただし、タイマーやRTCを使用する場合ほど正確ではありません。たとえば、秒が30になったときにシステムが何かをするようにしたい場合は、より正確にその時間を測定するためのタイマーまたはRTCアラーム(組み込みプラットフォームに基づいて)を設定する方が良いでしょう。

+1

スリープ用のLinuxのマニュアルページでは、引数は秒数です。そして質問には 'embedded-linux'というタグが付いています。だから、最初の段落(または答えの半分)が無関係な点を上げます。 – sawdust

0

私はCプログラマではありませんが、seconds+=1はゼロ以外の時間がかかるため、他のコードも同様です。 1秒以上しかし、時計ではなくタイマーの場合、これはおそらく、精度がそれほど高くない短期間で十分です。

関連する問題