マイコン入門spacer ad
トップページに戻る(マイコン徹底入門:STM32で始めるARM/Cortex-M3組み込み開発)
「マイコン徹底入門」とは? |  「マイコン徹底入門」を読む |  ダウンロード |  掲示板 |  筆者の自己紹介


Previous: 7.4.2.3. タンパー割込みの有効化

Up: 7.4.2. タンパー検出機能の使用方法

Next: 8. リアルタイムクロック


マイコン徹底入門:周辺回路編:STM32のペリフェラルを活用: 7. バックアップレジスタ: 7.4. タンパー検出機能: 7.4.2. タンパー検出機能の使用方法:

7.4.2.4. 割込みハンドラの作成

 割込を使用していますから、割込ルーチンを作成しておく必要があります。割込ルーチンの関数名はTAMPER_IRQHandler関数です(bkp_tamper/stm32f10x_it.c)

void TAMPER_IRQHandler(void)

{

? if(BKP_GetITStatus() != RESET)

? { /* Tamper detection event occured */

 

??? cprintf(“Tamper interrupt occured!\r\n”);

??? cprintf(“Memorized message is :\r\n”);

??? Print_Backup_Register();

??? cprintf(“\r\nIf you find no secret message above, it means Backup register is all reset.\r\n”);

 

??? /* Clear Tamper pin interrupt pending bit */

??? BKP_ClearITPendingBit();

 

??? /* Clear Tamper pin Event(TE) pending flag */

??? BKP_ClearFlag();

? }

}

 まず念のため割込みがタンパーイベントに呼び出されたものであるのかをBKP_GetITStatus関数(ライブラリ 13?9)で確認しています。正確に言えば、TAMPER_IRQHandler関数がタンパーイベント以外の理由で呼び出されることはありませんので不要です。

ライブラリ 13?9 BKP_GetITStatus関数

関数プロトタイプ

ITStatus BKP_GetITStatus ( void )

動作

タンパー割込のペンディングビットをクリアします。

引数

無し

戻り値

無し

 この割り込み処理ではタンパー割込が発生したことをターミナルに出力しています。タンパー割込みが発生した時点でバックアップ回路が自動的にバックアップレジスタの内容を消去していますから、ソフトウェアでバックアップレジスタの中身を消去する必要はありません。

 割り込み処理が終わった後は、BKP_ClearITPendingBit関数(ライブラリ 13?10)で割込ペンディングビットをクリアします。

ライブラリ 13?10 BKP_ClearITPendingBit関数

関数プロトタイプ

void BKP_ClearITPendingBit(void )

動作

タンパー割込のペンディングビットをクリアします。

引数

無し

戻り値

無し

 割込ルーチンの最後にBKP_ClearFlag関数を実行して、バックアップレジスタへの書き込みが行えるようにしておきます。


Previous: 7.4.2.3. タンパー割込みの有効化

Up: 7.4.2. タンパー検出機能の使用方法

Next: 8. リアルタイムクロック


このページはITと知的財産の法律情報「法務ネット」の管理人が制作・運営しています。
_Toc266801166