リアルタイムクロックとタイマーを実装して、このような画面の現在の時刻にプリントしたいと考えています。 : "時間:分:秒":組み込みプログラミング。リアルタイムクロック.Cプログラミングの実装
While(1){
.....Do sth
sleep(1);
.....Do sth
}
と1秒のパスの尺度については、その後
seconds+=1;
を
は、それを使用しても安全ですか?
リアルタイムクロックとタイマーを実装して、このような画面の現在の時刻にプリントしたいと考えています。 : "時間:分:秒":組み込みプログラミング。リアルタイムクロック.Cプログラミングの実装
While(1){
.....Do sth
sleep(1);
.....Do sth
}
と1秒のパスの尺度については、その後
seconds+=1;
を
は、それを使用しても安全ですか?
特定の組み込みシステムでsleep(1)がシステムを1秒間スリープ状態にするかどうかをチェックする必要があります。私が使用している組み込みボードの多くでは、スリープはミリ秒単位で引数をとります。 1秒間スリープするにはsleep(1000)を使用する必要があります。
精度についてあまり心配していない場合は、この方法を使用できます。ただし、タイマーやRTCを使用する場合ほど正確ではありません。たとえば、秒が30になったときにシステムが何かをするようにしたい場合は、より正確にその時間を測定するためのタイマーまたはRTCアラーム(組み込みプラットフォームに基づいて)を設定する方が良いでしょう。
スリープ用のLinuxのマニュアルページでは、引数は秒数です。そして質問には 'embedded-linux'というタグが付いています。だから、最初の段落(または答えの半分)が無関係な点を上げます。 – sawdust
私はCプログラマではありませんが、seconds+=1
はゼロ以外の時間がかかるため、他のコードも同様です。 1秒以上しかし、時計ではなくタイマーの場合、これはおそらく、精度がそれほど高くない短期間で十分です。
[this](http://stackoverflow.com/questions/3673226/how-to-print-time-in-format-2009-08-10-181754-811) – Hedron
と重複している可能性があります。 。しかし、このフォーマットがQNXのようなRTOSで動作するかどうかはわかりません。私は埋め込みシステムで過去に経験を持っていないので。 – alphjheon
*「使用するのは安全ですか?」* - 「安全」*の意味を明確にしてください。 – sawdust