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やドライバで必ず出るため
→ ポインタ入門:いま必要なところだけ(作成中)
よくあるつまずき(先に読んでおくと時間が減ります)
ビルドエラーが出て、何も分からない
- エラーの「最初の1つ」だけ読む(1個のミスが雪だるま式にエラーを増やすことが多い)
- まずは セミコロン
;、波かっこ{}、括弧()を疑う
→ C言語のはじめ:LED点滅で必要なところだけ(main/ループ/関数/変数)
書いたはずのコードが動いていない気がする
- 書く場所が違う可能性(変更する必要のないコードまで編集してしまう)
- 最初は 「自分が触るファイル/触らないファイル」 を決めます
→ 生成コードとの付き合い方(作成中)
“待ち”を書いたのに点滅が速すぎる/変わらない
- ループでの待ちは、最適化で“消える/短くなる”ことがあります
- 最初の実験では 確実に効く待ち方 を使う方針にします
→ delay入門:まず知っておくこと(作成中)
エラーは消えたけど、意味が分からないまま進んで不安
最初のLED点滅では、次だけで十分です。
main()が読める- 無限ループが読める
- 関数呼び出しが読める
- 変数が「状態」だと分かる
他カテゴリの内容が必要になったら(リンクだけ案内)
このカテゴリでは深掘りしません。必要になったときだけ、各カテゴリの「はじめに読む」へ進んでください。
更新方針
このページは、実験が進むにつれて「必要になった項目」を追記していきます。
最初から全部そろえず、ロボット開発の進行に合わせて整備します。