Previous: 8.4.1. アラーム値の設定 |
Up: 8.4. アラーム機能 |
Next: 8.5. タンパーピン出力 |
アラーム発生時は、RTC割込みのハンドラ(RTC_IRQHandler)が呼び出されますので、その中で割込みの発生原因がアラームかどうかを確認します。ちょっと紛らわしいのですが、RTCアラーム割込みは後述のEXTIと併用する場合専用の割込みです。アラーム発生時には呼ばれません。このことを確認するため、サンプルプログラムではRTCアラーム割込みのハンドラ(RTCAlarm_IRQHandler)も記述しています。NVIC の設定でも、RTCアラーム割込みの割り込み優先度をRTC割込みの割り込み優先度よりも高く設定しています。しかしRTCAlarm_IRQHandlerは一切実行されませんので、確認してみてください。
このサンプルではRTC割込みのハンドラに以下のように割込み処理を記述しています。処理の内容としては割込みがアラーム割込みであることを確認の上で、ペンディングフラグをクリアして、メインルーチンで使用するフラグ用変数に値を設定しています。
if (RTC_GetITStatus(RTC_IT_ALR) != RESET) ?{ ?? /* Wait until last write operation on RTC registers has finished */ ?? RTC_WaitForLastTask(); ?? /* Clear the RTC Second interrupt */ ?? RTC_ClearITPendingBit(RTC_IT_ALR); ?? Alarm = 1; ?} |
Previous: 8.4.1. アラーム値の設定 |
Up: 8.4. アラーム機能 |
Next: 8.5. タンパーピン出力 |