Previous: 8.1. リアルタイムクロックとは |
Up: 8. リアルタイムクロック |
Next: 8.2.1. RTCの初期化手順 |
サンプルプログラム |
rtc_clock_serial |
ターミナルから現在時刻を入力すると、ターミナルに1秒毎に現在時刻を表示し続けるプログラムです。1秒毎に割込が発生して、RTCが持っている時刻を送信しようとします。回路図は図 13?1と同じです。
STM32のリアルタイムクロックは、バックアップレジスタと同様バックアップドメインにありますので、VDDの停止中も動作させたいのであれば、VBATに電源を接続する必要があります。サンプルプログラムでは、VBATに電力を供給していれば、パワーオンリセット後も以前記録していた時刻に経過時間を加算した時刻が表示されます。なおVDDが供給されているのであれば、VBATを供給しなくても、リアルタイムクロックを駆動することはできます。そのためVDDに電源が供給されていれば、リセットボタンによるリセットでも、以前の経過時間からカウントを再開します。
リアルタイムクロックは、プログラムを初めて実行するときや、リアルタイムクロックがリセットされたときには、カウンタやプリスケーラの設定が必要です。一方、リアルタイムクロックの設定を行った後に、VDDやVBATを供給したままリセットされた場合には、以前の設定のまま動作し続けています。サンプルプログラムでは、バックアップレジスタを利用して、以前にこのサンプルプログラムが実行されたことがあるかどうかを確認しています。
Previous: 8.1. リアルタイムクロックとは |
Up: 8. リアルタイムクロック |
Next: 8.2.1. RTCの初期化手順 |