Previous: 8.2.1.5. RTCの有効化 |
Up: 8.2.1. RTCの初期化手順 |
Next: 8.2.1.7. RTC割込みの有効化 |
RTCは他の周辺回路と違い、RTCのレジスタから値を読み込む前に、RTCのレジスタに実際の状態が反映されるまで待つ必要があります。というのも、RTC回路の仕様上、RTCのレジスタに実際の状態が反映される(同期される)のは、RTCのクロックの立ち上がりエッジが発生した時だからです。ファームウェアにはこの「同期待ち」のための、RTC_WaitForSynchro関数(ライブラリ 14?6)が用意されています。
ライブラリ 14?6 RTC_WaitForSynchro関数
関数プロトタイプ |
void RTC_WaitForSynchro(void )
|
動作 |
RTCレジスタがRTCクロックで更新されるまで待ちます。 |
引数 |
無し |
戻り値 |
無し |
サンプルプログラムでは以下の部分となります。
/* Wait for RTC registers synchronization */ RTC_WaitForSynchro(); |
またRTCのレジスタへの書き込みは、前に行った書き込みが完了した後でないと行えません。ファームウェアにはこちらの「待ち」のために使用するRTC_WaitForLastTask関数(ライブラリ 14?7)も用意されています。
ライブラリ 14?7 RTC_WaitForLastTask関数
関数プロトタイプ |
void RTC_WaitForLastTask(void ) |
動作 |
最後に行ったRTCへの書き込み処理が完了するまで待ちます。 |
引数 |
無し |
戻り値 |
無し |
サンプルプログラムでは以下の部分です。
/* Wait until last write operation on RTC registers has finished */ RTC_WaitForLastTask(); |
Previous: 8.2.1.5. RTCの有効化 |
Up: 8.2.1. RTCの初期化手順 |
Next: 8.2.1.7. RTC割込みの有効化 |