次のページへウォッチドッグタイマーのカウント終了条件ウォッチドッグタイマーは、『マイコンの暴走を監視するタイマー』のことです。プログラムは、何かしらの原因で暴走する時があります。そのため暴走を監視するハードウェアが必要になります。タイムアップするとマイコンをリセットするタイマーを設け、このタイマーで暴走を監視する手法がウォッチドッグタイマーです。タイマーのカウンターがタイムアップする前に、プログラムでカウンターをリフレッシュします。リフレッシュされたカウンターは再びカウントを始めます。この動作をプログラムの一部に取り入れ、周期的にカウンターをリフレッシュします。プログラムが暴走すると、この周期的なカウンターのリフレッシュが行われなくなり、タイマーはタイムアップしてマイコンをリセットします。マイコンはリセットされると、再び最初から正常動作を開始し、暴走から復帰することができます。ウォッチドッグタイマーのリセットはリセットピンから入る外部リセットと同じですが、ウォッチドッグタイマーのリセットであることを示すフラグが立ちます。そこで、リセット直後に実行されるプログラムの中で、そのフラグをチェックすれば、ウォッチドッグタイマーのリセットで起動したかどうかを判別できます。クロック制御およびステータスレジスタ(RCC_CSR)」のIWDGRSTFまたはWWDGRSTFが立ちます。(クリックで拡大)ソフトウェアリセットソフトウェアで強制的にリセットをかける方法をソフトウェアリセットと呼びます。直接リセットする命令を持っているマイコンもありますし、レジスタをセットすることでリセットするマイコンもあります。リセット方法は各マイコンでさまざまです。STM32F4シリーズの場合、「アプリケーション割り込みおよびリセット制御レジスタ」の中のSYSRESETREQビットをセットすることで、リセットできます。クロック制御およびステータスレジスタ(RCC_CSR)」の中のSFTRSTFフラグが立ちますので、ほかのリセットと区別することができます。低消費電力管理リセット低消費電力管理リセットとは、マイコンが低消費電力モードに入る時にリセットすることです。STM32F4シリーズでは、スタンバイモードまたはストップモードに入る代わりに、リセットをかけることができます。具体的には、スタンバイモードの場合、ユーザオプションバイトのnRST_STDBYビットを前もってリセットしておきます。ストップモードの場合は、ユーザーオプションバイトのnRST_STOPビットをリセットしておきます。これらのビットは、ソフトウェアで読み出せるので、ほかのリセットと区別することができます。LLC.ITmediaはアイティメディア株式会社の登録商標です。