フェーズ2:時間(タイマ)/周期処理/状態機械(入口)
フェーズ2は「delayに頼らず、複数の処理を同時に回す」ための土台です。
以後のセンサ・サーボ・BLEでも必須になる 時間の扱いをここで固めます。
このフェーズで得るもの
- delayの欠点を体験し、「なぜタイマが必要か」が腹落ちする
- 基準時刻(1msカウンタ)を作って、メイン処理で周期処理を回せる
- 状態(IDLE/RUN/ERROR)で「やること」を分けて書ける
実験一覧(E2)
※記事を作ったらリンクに差し替え。
- E2-01 待ちで止まる問題を体験(delayの限界)(作成中)
目的:「待っている間に他の処理が止まる」ことを体験し、時間管理が必要な理由を理解する。 - E2-02 ミリ秒の時計を作る(1msカウンタ)(作成中)
目的:1msごとに増えるカウンタ(基準の経過時間)を作り、時間を測れるようにする。 - E2-03 時間になったら動く(周期処理:正確な点滅)(作成中)
目的:時刻差分で周期処理を実行し、delayに頼らず安定した周期動作を作る。 - E2-04 複数周期タスク(例:100msと700msを同時に回す)(作成中)
目的:周期の異なる処理を同時に動かし、「複数のことを並行に回す」感覚をつかむ。 - E2-05 状態で整理(IDLE/RUN/ERROR)(作成中)
目的:状態ごとに処理を分け、RUN中の周期処理と、ERROR時の安全停止/復帰待ちを整理して書けるようにする。
先に読む(基礎シリーズ)
- 組み込み開発:デバッグ/ログの基本(作成中)
- C言語:変数/if/関数/配列(最低限)(作成中)
- マイコン(RA8M2):タイマの概念(入門)(作成中)
よくあるつまずき TOP3
- delay中に他の処理が止まる(ボタンが鈍い/ログが出せない)
- 周期がブレる(“何ms経ったか”の管理が曖昧)
- 状態が増えてコードが読めない(状態機械で整理が必要)
ゴール(このフェーズを終えた状態)
- 1msカウンタ(基準時刻)を持てる
- メイン処理が時刻差分で「時間になったら動く」を実装できる(delayなし)
- 100ms/700msなど複数周期タスクを同時に回せる
- IDLE/RUN/ERRORで処理を分け、ERRORでも監視/復帰ができる