Previous: 8.2.1.6. 同期待ち処理 |
Up: 8.2.1. RTCの初期化手順 |
Next: 8.2.1.8. カウント速度の設定 |
このサンプルプログラムではRTC割込を利用していますので、RTC_ITConfig関数(ライブラリ 14?8)でRTC割込を有効にします。
ライブラリ 14?8 RTC_ITConfig関数
関数プロトタイプ |
void RTC_ITConfig(uint16_t RTC_IT, FunctionalState NewState ) |
|||||||
動作 |
指定したRTC割込を有効又は無効にします。 |
|||||||
引数 |
RTC_IT |
設定対象とするRTC割込の種類。以下のマクロを組み合わせて指定します。
|
||||||
NewState |
割込の有効無効
|
|||||||
戻り値 |
無し |
RTC割込はRTCがカウントをしたとき(秒割込)、アラームが発生したとき(アラーム割込)、カウンタオーバーフロー(オーバーフロー割込)となったときに発生します。このサンプルプログラムでは秒割込を使用しますので、RTC_IT_SECを指定してRTC_ITConfig関数を実行します。なお先ほどお約束どおり、RTCは書き込みの前に「待ち」が必要です。RTC_ITConfig関数への書き込み処理ですから、次の書き込み動作のために、予めRTC_WaitForLastTask関数を実行しておきます。
/* Enable the RTC Second */ RTC_ITConfig(RTC_IT_SEC, ENABLE); /* Wait until last write operation on RTC registers has finished */ RTC_WaitForLastTask(); |
NVICの設定ですが、NVIC_IRQChannelをRTCの割込リクエストチャンネルであるRTC_IRQnで設定します。
void NVIC_Configuration(void) { ? NVIC_InitTypeDef NVIC_InitStructure;
? /* Enable the RTC Interrupt */ ? NVIC_InitStructure.NVIC_IRQChannel = RTC_IRQn; ? NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; ? NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; ? NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; ? NVIC_Init(&NVIC_InitStructure); } |
Previous: 8.2.1.6. 同期待ち処理 |
Up: 8.2.1. RTCの初期化手順 |
Next: 8.2.1.8. カウント速度の設定 |