第18回 プログラムの構造を理解する

今回からプログラムの中身を詳しく確認していきます。

今回の説明

回路を完成させるために以下の順序で説明しています。このエントリの説明は(3)「プログラムを作る」の部分のプログラムの解説になります。

  1. LEDを電池と抵抗のみで光らせる回路を組み立てる
    PICマイコンの回路を組み立てる前に、まずはブレッドボードに慣れておくことにします。電池、抵抗、LEDのみを使って、ブレッドポード上に回路を組んでLEDを光らせてみます。ここでは電池、抵抗、LEDの回路記号と回路図の説明をして、回路図からブレッドボードに組む方法を説明します。まずはブレッドボードに慣れましょう!
  2. PICマイコンのベース回路を組む
    はじめの一歩の回路は、LEDを1秒に1回光らせるだけの回路です。この回路をブレッドボードに組み立てます。
  3. プログラムを作る
    LEDを1秒に1回光らせるプログラムを作成します。
  4. PICマイコンに書き込んで動作させる
    作成したプログラムをPICマイコンに書き込んで動作させてみます。
  5. ベース回路にスイッチを追加
    LEDの点滅をスイッチで開始させるために、ベース回路にスイッチを追加します。これまではLEDを光らせる、という出力制御をしましたが、今度はPICマイコンで外部から信号を入力する方法を確認します。
  6. ベース回路にブザーを追加
    スタートスイッチ付きの、1秒に1回光らせる回路を作りましたので、ブザーを追加してタイマーとして完成させます。

 

プログラムの構成

前回の記事では、完成したプログラムを(中身が分からないまま)コピペして、ビルド・書き込み・動作テストさせてみました。

今回からこのプログラムの中身を詳しく理解していきます。プログラム自体は短いですが、PICマイコンプログラムの基本的な部分がいろいろと詰まっていますので、一通り理解することを目指しましょう!このプログラムが理解できれば、他のPICマイコンも似たようなものですし、C言語が分かっていれば自分で作りたいものが作れるようになります!

PICマイコンのプログラムは多くの場合、以下のような構成になっています。

Pic basic 18 program structure

それぞれのブロック毎に説明していきますが、すべてのブロックを説明するとかなり長い説明になりますので、今回はコメント部分とヘッダファイルインクルード部分の説明をします。

PICマイコンプログラムの構成はだいたい上の構成になっていますが、実際の規模の大きいプログラムを見るとちょっと違うところもあります。どのような点が違う可能性があるかというと、、、

という感じです。特に最初の2項目はC言語プログラミングの話になってきますので、詳細はC言語の解説書を参照いただければと思います。なお、Microchip社からリリースされているサンプルプログラムは規模の大きいものが多く、そのようなケースではどのようにプログラムを書いていけばよいか参考になります。

 

コメント部分

MPLABXで、新規プロジェクトを作って、main.cを新規追加すると、main.cファイルの先頭にコメントが自動的に記述されます。内容は、ファイル名と作成者です。今回はこのままにしますが、自分でいくつもプログラムを書いていくとだんだんわからなくなってきますので、今後いろいろなプログラムを作成されるときは、これ以外にも以下の内容を記述しておくとよいと思います。

ところで、昔はプログラムの先頭コメント部分に結構細かく変更履歴を書くケースが多かったと思います。でも最近は変更履歴を書くにしても簡単な内容にとどめて、実際はバージョン管理システムで管理することが多くなってきました。例えばGitHubというWebサービスを聞いたことがないでしょうか。GitHubはGitというバージョン管理システムでソースコードを共有・管理するWebサービスです。

このバージョン管理システムですが、実はMAPLABX IDEにも搭載されています。MPLABX Version5.10時点では

が利用できます(macOS/Windowsとも)。これらのバージョン管理システムはそれぞれ特徴があり、使い方も異なります。使い方については書籍やサイトがありますのでご興味があれは勉強してみてください。なお、MPLABXで利用する場合、”Team”メニューからそれぞれのバージョン管理システムメニューで管理します。

というわけでいろいろと説明してしまいましたが、まずはデフォルトで進めてみて、自分でいろいろと工夫してみましょう。またバージョン管理システムはツールとして使えるといろいろと役に立ちますのでこちらも是非勉強してみてください。

 

ヘッダファイルインクルード部分

新規プロジェクトを作ってmain.cファイルを新規追加すると、そのファイルにはデフォルトで xc.h がインクルードされています。

ヘッダファイルのインクルードについては、基本的な機能のプログラムでしたらこの xc.h をインクルードすればOKです。

ところで、#include文でインクルードしているファイルの内容を確認したいケースがありますよね。この場合、MPLABX IDEでは、すぐにそのファイルを開けるショートカットが用意されています。例えば、xc.hを開きたい場合、macOSの場合は「commandキー」を押しながら、Windowsの場合は「Controlキー」を押しながら、「<xc.h>」の文字列をクリックします。

クリックすると、新しいタブで「xc.h」の中身が表示されます。

Display xc h

インクルードファイルの内容を確認したいケースは結構ありますので、この開き方を覚えておくとよいと思います。。

コメント部分とインクルード部分はこれで説明は終わりです。

次回はPICマイコンコンフィグレーション設定部分の説明をします。

 

更新履歴

日付 内容
2016.8.30 新規投稿
2018.11.24 インクルードファイルをxc.hのみに変更