C言語:はじめに読む

2足歩行ロボを作るには、マイコン(RA8M2)を動かすための「C言語」が必要です。
ただし、最初から全部覚える必要はありません。ここでは、まず、評価ボードで最初の実験(LED点滅)を動かすための最低限に絞って案内します。

このカテゴリが担当する実験シリーズのフェーズ

  • フェーズ1:GPIO(LED/ボタン)で“入出力”に慣れる
    main() / ループ / 関数 / if など、動作の流れが読めること)
  • フェーズ2:時間を測る → 周期処理 → 状態分け
    (カウンタ/フラグ/switch、必要ならビット・16進数の読み方)

※フェーズ0(環境構築・書き込み・デバッグ・ログ)は「組み込み開発」カテゴリが主担当です。
※ただし「コードが読めない/どこを直せばいいか分からない」場面では、このカテゴリが助けになります。

フェーズ1のゴール(このカテゴリの範囲)

実験シリーズのフェーズ1で、まず次ができる状態を目指します。

  • main()while(1) の流れが読める
  • func(); を見て「この処理を呼んでいる」が分かる
  • if で「条件で動作が変わる」が分かる(ボタンでLEDの動作が変えられるイメージ)

フェーズ2のゴール(このカテゴリの範囲)

フェーズ2で「時間/周期処理」に進む前に、ここでは次だけ押さえます。

  • 1msカウンタのような カウンタ変数 が読める
  • フラグ(0/1) で状態を持つ意味が分かる
  • switch で状態分けするイメージが持てる(ステートマシン(状態遷移)の入口)

このページでやること

  • C言語の「最低限」を 読む順番で案内します
  • 最初に詰まりやすい “Cの形が分からない”問題 を先に潰します
  • 困ったら戻ってこれる“入口”にします

まずはここから(最初の1本)

1. C言語のはじめ:LED点滅で必要なところだけ(main/ループ/関数/変数)

最初のLED点滅に必要なのは、C言語のうち本当に一部だけです。
この1本のゴール(まだボード不要でもOK):

  • main() が入口だと分かる
  • 組み込みでは while(1) のようにずっと回すのが普通だと分かる
  • 関数を呼ぶ(func();)が読める
  • 変数で「状態」を持つ意味が分かる(カウンタ、フラグ)

C言語のはじめ:LED点滅で必要なところだけ(main/ループ/関数/変数)

最低限の道具(最初はこれだけでOK)

  • e² studio(環境は「組み込み開発:はじめに読む」側で用意済みの前提)
  • プロジェクト(FSPプロジェクト。コードが書ける状態になっている)

※このカテゴリ(C言語)では、環境構築の細部は扱いません。
 ビルドできない/書き込めない場合は、組み込み開発カテゴリ側に戻る方針です。

次に読む(必要になったらでOK)

※ここから先は、実験を進める中で「困ったら読む」で十分です。

2. (予定)Cの型と数値(int / uint32_t / ビット:GPIOの値が読めるようになる)

  • 0/1 だけでなく「ビット」「16進数」が出てきても止まらないため
  • GPIOやレジスタの値が“数字の表現”として読めるようになります
    → Cの型と数値(作成中)

3. (予定)if / switch(条件で分岐する:ボタンや状態で動作を変える)

  • LED点滅の次で「条件」が必ず出ます
    → 分岐(作成中)

4. (予定)配列・構造体(複数のサーボ/センサを扱う入口)

  • ロボットは「複数個」を扱うので必須になります
    → 配列・構造体(作成中)

5. (予定)ポインタ入門(いま必要なところだけ)

  • FSPやドライバで必ず出るため
    → ポインタ入門:いま必要なところだけ(作成中)

よくあるつまずき(先に読んでおくと時間が減ります)

ビルドエラーが出て、何も分からない

書いたはずのコードが動いていない気がする

  • 書く場所が違う可能性(変更する必要のないコードまで編集してしまう)
  • 最初は 「自分が触るファイル/触らないファイル」 を決めます
    → 生成コードとの付き合い方(作成中)

“待ち”を書いたのに点滅が速すぎる/変わらない

  • ループでの待ちは、最適化で“消える/短くなる”ことがあります
  • 最初の実験では 確実に効く待ち方 を使う方針にします
    → delay入門:まず知っておくこと(作成中)

エラーは消えたけど、意味が分からないまま進んで不安

最初のLED点滅では、次だけで十分です。

  • main() が読める
  • 無限ループが読める
  • 関数呼び出しが読める
  • 変数が「状態」だと分かる

他カテゴリの内容が必要になったら(リンクだけ案内)

このカテゴリでは深掘りしません。必要になったときだけ、各カテゴリの「はじめに読む」へ進んでください。

更新方針

このページは、実験が進むにつれて「必要になった項目」を追記していきます。
最初から全部そろえず、ロボット開発の進行に合わせて整備します。