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


Previous: 11.1.5. 独立型ウォッチドッグの有効化

Up: 11. 独立型ウォッチドッグタイマ

Next: 11.3. 割込みを利用したカウンタリセット


マイコン徹底入門:周辺回路編:STM32のペリフェラルを活用: 11. 独立型ウォッチドッグタイマ:

11.2. 無限ループの例(変数型の設定ミス)

サンプルプログラム

iwdg_infinite_loop_2

 前項と同じくターミナルからの入力に応じてオンボードLEDの点滅速度をコントロールするプログラムです。マイコンボードへの回路の接続は不要です。

 今度は点滅速度を速くすると、点滅が停止してマイコンがリセットされます。原因が何なのかまずは自分でトレースしてみてください。

 原因は変数iunsigned型になっていることです。whileループの条件で「i0より大きい」かどうかをチェックしています。diff12のときは減算していくと0になりますが、diff3のときは0を飛び越えて65535になります。これだと永遠に0より大きいままですから、ループから脱出できずに、ウォッチドッグリセットがかかります。


Previous: 11.1.5. 独立型ウォッチドッグの有効化

Up: 11. 独立型ウォッチドッグタイマ

Next: 11.3. 割込みを利用したカウンタリセット


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