Previous: 11.1.5. 独立型ウォッチドッグの有効化 |
Up: 11. 独立型ウォッチドッグタイマ |
Next: 11.3. 割込みを利用したカウンタリセット |
サンプルプログラム |
iwdg_infinite_loop_2 |
前項と同じくターミナルからの入力に応じてオンボードLEDの点滅速度をコントロールするプログラムです。マイコンボードへの回路の接続は不要です。
今度は点滅速度を速くすると、点滅が停止してマイコンがリセットされます。原因が何なのかまずは自分でトレースしてみてください。
原因は変数iがunsigned型になっていることです。whileループの条件で「iが0より大きい」かどうかをチェックしています。diffが1や2のときは減算していくと0になりますが、diffが3のときは0を飛び越えて65535になります。これだと永遠に0より大きいままですから、ループから脱出できずに、ウォッチドッグリセットがかかります。
Previous: 11.1.5. 独立型ウォッチドッグの有効化 |
Up: 11. 独立型ウォッチドッグタイマ |
Next: 11.3. 割込みを利用したカウンタリセット |