HOME > 技術談話 > PIC® microcontroller > C言語を利用した開発
PIC10/12/16系のPICマイコンを使用した物作りではアセンブラを利用するケースが多いと思います。 時には処理時間、メモリ容量の制限からアセンブラしか使えない場合もあります。 開発環境が無償で命令数が少なくて覚えるのが簡単。見たままの流れがプログラムの動作。 と言われてプログラミングを始めたのは良いけど、汎用レジスタは8ビット幅で1個だけ。 命令を組み合わせれば複数バイトの演算式も判定も処理できるけど… キーボードを打つ手が止まってしまう事がある。 「○○○を作るぞ!」最初はやる気満々で開始しますが、時間の経過と共にやる気が落ちてきて…未完成。 思い当たる人、挙手 もう少し楽にプログラミングができないものかと。 そんな時はC言語でプログラミングしてみましょう。 最新の開発環境にはCコンパイラが同梱されています。これを眠らせておくのはもったいない。 ここでは、PIC10/12/16系のPICマイコンをC言語を使ってプログラミングする場合の要点について説明します。 |
▲ |
C言語でプログラミングする場合のメリットを考えてみました。 コーディング時間の短縮 フローチャート、仕様書の記述をそのまま引用でき、演算式や判定は数行のコーディング済みます。 ステップ数の削減 アセンブラに比べて行数が激減し印刷用紙が少なくて済みます。眼精疲労も軽減できそうです。 デバッグ時間の短縮 ステップ数が少なくなりプログラム全体が見通しやすくなります。C言語を使う他の人に依頼できます。 単純ミスの軽減 パラメータの場所間違い、バンク指定の間違い、バイトオーダーの間違い等の単純ミスを軽減できます。 複雑な仕様への対応 コーディングに要するパワーを削減し、プログラム構造や動作仕様など他の場所に向けることができます。 他のマイコンへの移植 プログラムを他のマイコンへの移植することが容易です(ハードウェア依存部を除く)。 診断ツールの利用 若干の手直しでコーディング診断ツール、ドキュメント作成ツールを利用する道が開けます。 開発要員の確保 C言語ができれば大丈夫。と他の人をプロジェクトに巻き込むことができます(悪意は…ない)。 |
▲ |
プログラムの作成が容易になる代わりにデメリットも目立ってくると思います。 プログラム容量の増大 助長的な命令が生成されます。無償版の場合は最適化に制限があり必要な機能が入らない場合があります。 … 有償のコンパイラを利用することでプログラム容量を最適化ができる場合があります。 処理速度の増大 助長的な命令が増えて処理を完了するまでの時間が長くなります。 … 有償のコンパイラを利用することで処理速度を高速化ができる場合があります。 コンパイラ不具合の可能性 コンパイラを信用するしかありませんが、問題発生時はコンパイラにより展開されたアセンブラの理解が必要です。 … 総てのルート、パターンをデバッグで確認し、問題箇所をコーディング手法で回避できる場合があります。 難しい仕様の追加 プログラミング工数が減る代わりに仕様の追加を要求されるかもしれません。 … 頑張って耐えるか、当たり障りのない言い訳を考える必要があります。 |
▲ |
C言語でプログラム開発することがベストな方法とは限りませんが、プログラム容量が増加しても、処理速度が落ちたとしても機能仕様を満足できるのであれば利用するメリットの方が大きいと思います。 まずは小さなサンプルプログラムを作ってみる。試してみない事には良し悪しの判断は難しいと思います。 C言語でプログラム開発することを覚えてしまった為にアセンブラによるプログラム開発に戻れなくなってしまった。 誠に申し訳ありませんが、その様な苦情は御遠慮願います。 |
▲ |