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


Previous: 10.5.2.1. WFI

Up: 10.5.2.1. WFI

Next: 10.5.2.1.2. 割込みハンドラの作成


マイコン徹底入門:周辺回路編:STM32のペリフェラルを活用: 10. 低電力モード: 10.5. STOPモード: 10.5.2. RTC Alarmによるモード復帰: 10.5.2.1. WFI:

10.5.2.1.1. EXTI割込みの有効化

 そのためにはまず、EXTIの設定時にEXTI_LineEXTI_Line17にします。EXTI_Line17RTCアラームが接続されているEXTIラインです。その他の設定は以下の通りとなります。

void EXTI_Configuration(void)

{

? EXTI_InitTypeDef EXTI_InitStructure;

 

? /* Configure EXTI Line17(RTC Alarm) to generate an interrupt on rising edge */

? EXTI_ClearITPendingBit(EXTI_Line17);

? EXTI_InitStructure.EXTI_Line = EXTI_Line17;

? EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;

? EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;

? EXTI_InitStructure.EXTI_LineCmd = ENABLE;

? EXTI_Init(&EXTI_InitStructure);

}

 RTCアラームを設定する必要がありますが、設定方法は通常のRTCアラームの設定方法と同じです。割込みを使用して復帰させますので、NVICと割込みハンドラの設定も必要です。このサンプルでは、RTC_GetCounter関数で現時点のカウンタ値を取得し、これに3を足した数をRTC_SetAlarmを設定しています。現時点でのカウンタ値が何であってもこれで3秒後にRTCアラームが発生します。

 PWR_EnterSTOPMode関数を実行してSTOPモードに入りますが、スイッチを何も操作しなくても、3秒後にRUNモードに復帰します。


Previous: 10.5.2.1. WFI

Up: 10.5.2.1. WFI

Next: 10.5.2.1.2. 割込みハンドラの作成


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