MPLAB X IDEでプロジェクトを開始する。

プロジェクトのディレクトリとソースファイルの構成を決めたら、いよいよ開発です。

先の例ではすでにmain.cを作成しましたが、
  • デバイスが決まっていて
  • 回路構成も決まっていて
  • ピンアサインが決まっていて
  • 内部ペリフェラルの使い方やクロックの設定も決まっている
なら、楽をする方法があります。厳密に決まっている必要はなくて、だいたいこんな感じレベルでも構いません。ただ、その場合には「あとになってこの方法では使えないことがわかった」なんてこともあるので、最初のデバイスの選定はある程度慎重に。

で、楽をする方法ですが、MPLAB Code Configurator (MCC)を使います。もちろんデバイス用のヘッダファイルを参照してゴリゴリやってもいいんですが、楽できるところは楽したほうがいいですし。他にも、MPLAB Harmonyというツールもありますが、こちらは32bit用。プロジェクト規模も大きくなり、RTOS的な開発で、グラフィックライブラリなども含んでいます。
それからコードクオリティ向上のために、lintなどを使うケースもあるかと思います。組み込みプログラムでは割り込み処理など独特な記法があるので、そのへんに対応したlintでないと使い物になりませんが、MPLAB X IDEにはPC-lintプラグインというものがあります。ただしこれはGimple SoftwareのPC-lintを使うためのもので、こちらのソフトウェアはライセンスが必要です。

それはさておき、早速MCCを使ってみます。
標準的にインストールしたMPLAB X IDEでは、MCCプラグインはインストールされていません。ですので、そこから始めます。

メニューの "Tools" → "Plugins" でダイアログを開き、"MPLAB Code Configurator" をチェックします。
チェックしたら一覧の下にある "Install" ボタンを押します。するとライセンス確認があって、インストールが開始されます。

ただ、今回はなぜかこれがエラーとなるため、手動インストールを試してみます。MCCのページの下の方に、Current Downloadというコーナーがあり、そこにバージョン3.66が置いてあります。先ほどダウンロードしようとしていたのは3.75なのでちょっと古いバージョンですが、これを試してみます。
ちなみにこのページは最新版が掲示されるまでけっこう時間がかかっているようです。
3.66をダウンロードしたら、そのZIPファイルを展開して *.nbm ファイルを取り出しておきます。

先程のPluginsダイアログの "Downloaded" タブを開き、"Add Plugins..." ボタンを押します。先ほど取り出した nbm ファイルを指定して取り込みます。
下にある "Install" ボタンを押せばインストールが始まります。ライセンスを確認してインストールしたら、MPLAB X IDEをリスタートします。

リスタートすると、ツールバーに MCC アイコンが増えています。

このアイコンをクリックするか、"Tools" → "Embedded" → "MPLAB Code Configurator" をクリックします。

MCCがロードされ、設定ファイルを保存するダイアログが出てきますので、 "TestProj.mc3" と名前をつけて保存します。
するとこんな感じの画面になります。

ここで、右を見てみるとパッケージが UQFN20 パッケージになっています。
PIC16F18346 は、20pin DIP/SOIC/SSOPのパッケージと20pin QFNの4種類のパッケージがあります。なのでパッケージを指定します。

画面下側にあるPin ManagerのタイルからPackagesのところを変更して、PDIP20にします。すると右上のパッケージの形状が変わります。

そこからは、クロック、割り込み、タイマー、ペリフェラルの機能やピンアサインと入出力などを指定していけば、雛形を出力してくれます。

MCCが生成したファイルは、プロジェクトの論理ツリーの "Header Files" と "Source Files" の下に "MCC Generated Files" という形で格納されます。また、物理的にはプロジェクトディレクトリの直下に mcc_generated_files というディレクトリが作られ、そのなかに保存されます。

0 件のコメント:

コメントを投稿

Vimの補完プラグインをインストール。その4

Vimの補完プラグインをインストール。その3 で、 ddc-tabnine が使えそうです、などと書いたのですが、早速やってみました。 まず、tabnineのバイナリを用意しないといけません。がどうにもTabNineのサイトがわかりにくいので、 tabnine-nvim にあるダ...