Previous: 7.3.4. リセットの検出 |
Up: 7.3. バックアップレジスタの利用方法 |
Next: 7.3.6. 書き込みデータの取得 |
バックアップレジスタの値は、初期値又はバックアップドメインをリセットした後は0になる事が仕様上保証されています。そのためバックアップレジスタにあらかじめ0以外の値を書き込んでおき、後でそのバックアップレジスタの値をチェックすれば、その間にバックアップレジスタがリセットされたかどうかを確認することができます。ちなみにバックアップレジスタが0かどうかを確認したとしても、それだけではリセットされて0になったのか、プログラムであえて0を書き込んだのかを区別することができません。0以外であれば何でもいいでしょう。
バックアップレジスタの内容を読み込むために使用するのが、BKP_ReadBackupRegister関数(ライブラリ 13?4)です。
ライブラリ 13?4 BKP_ReadBackupRegister関数
関数プロトタイプ |
uint16_t BKP_ReadBackupRegister(uint16_t BKP_DR)
|
|
動作 |
バックアップレジスタの中身を読み取ります。 |
|
引数 |
BKP_DR |
読み取る対象のバックアップレジスタを指定します。BKP_DRx型のマクロで指定し、xにはバックアップレジスタの番号が入ります。 |
戻り値 |
読み取ったバックアップレジスタの値 |
BKP_DRxの中身は単純なuint16_t型の定数値です。そこで、このプログラムでは、繰り返し処理で扱いやすいように、配列に値を格納しています。
uint16_t BKPDataReg[BKP_DR_NUMBER] = ? { ??? BKP_DR1, BKP_DR2, BKP_DR3, BKP_DR4, BKP_DR5, BKP_DR6, BKP_DR7, BKP_DR8, ??? BKP_DR9, BKP_DR10 ? }; |
このサンプルプログラムでは、BKPDataReg[0]に合い言葉を格納することにしましたので、これをチェックして、バックアップレジスタの内容がプログラム済みかを確認しています。ちなみにマクロ名のOPEN_SESAMEは「開けゴマ」で、特に深い意味はありません。
if( BKP_ReadBackupRegister(BKPDataReg[0]) == OPEN_SESAME ) |
Previous: 7.3.4. リセットの検出 |
Up: 7.3. バックアップレジスタの利用方法 |
Next: 7.3.6. 書き込みデータの取得 |