フェーズ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

  1. delay中に他の処理が止まる(ボタンが鈍い/ログが出せない)
  2. 周期がブレる(“何ms経ったか”の管理が曖昧)
  3. 状態が増えてコードが読めない(状態機械で整理が必要)

ゴール(このフェーズを終えた状態)

  • 1msカウンタ(基準時刻)を持てる
  • メイン処理が時刻差分で「時間になったら動く」を実装できる(delayなし)
  • 100ms/700msなど複数周期タスクを同時に回せる
  • IDLE/RUN/ERRORで処理を分け、ERRORでも監視/復帰ができる

次に進む