第29回 MPLAB Code Configurator(5)〜ADコンバータ機能追加〜

今回はMCC上でADコンバータ機能を追加します。

目次

今回の記事で行うこと

MCCの例題としてADコンバータを使用しますので、今回の記事はMCC上でADコンバータ機能を追加します。

前回の基本設定では、「Clock Control」「Configuration Bits」「Interrupt Manager」「Pnis」それぞれについて必要な設定を行いました。

これらの設定は、PIC12F1822を動作させるための最低限の基本機能、といった感じですね。

これら以外の追加機能、例えばADコンバータ機能やPWM制御機能は、MCCでは明示的に機能追加する必要があります。

今回の記事では、MCCでADコンバータ機能の追加を行い、プログラムファイルの生成を行います。(生成されたプログラム内容は次回の記事で解説します)

機能追加手順

MCCで機能追加するには、複数の手順があります。

最初に複数の手順を確認します。

2通りの機能追加手順

MCCで機能を追加するには、2通りの手順があります。

ただ、どちらも機能を追加するという目的は同じですので、どちらか使いやすい方を使ってみてください。

機能追加手順その1

右側領域の「Device Resource」をクリックすると、次のように機能追加画面が表示されます。

この画面で、「Drivers」などのそれぞれの項目の左側にある「>」マークをクリックすると、項目が展開されて追加できる機能が表示されます。

「Drivers」を展開すると一番上に「ADC」とありますが、これが「ADコンバータ」機能です。

まだ作業はしませんが、さらに「ADC」の項目を展開すると、上のように「ADC」の左側に緑色のプラスボタンが表示されます。このボタンをクリックするとADコンバータ機能が追加されます。

これが機能追加手順の一つ目の方法です。

機能追加手順その2

もう一つの方法は、「Application Builder」画面の上の方にある「Add Component」ボタンをクリックする方法です。

このボタンをクリックすると次のような画面が表示されます。

この画面は大きく2つの領域に分かれていて、上半分の「Modules Available」というタイトルの領域は追加できる機能のリスト、下半分の「Modules Loaded」というタイトルの領域はすでに追加済みの機能のリストです。

まだ作業はしませんが、機能を追加する場合、追加できる機能のリストから機能を探して、右端のプラスボタンをクリックすると追加できます。

追加機能の意味

2つの機能追加手順ですが、両方とも検索欄があります。

ここで「adc」で検索すると次のようなリストが表示されます。

手順その1の画面
手順その2の画面

ADコンバータ機能を検索すると、このように2種類リストされます。(他の機能も同様に2種類リストされます)

実際に、ADコンバータ機能を追加する前に、これらの違いについて確認しておきましょう!


例えば、ADコンバータの場合、機能名の「ADC」という項目と、機能名に「Initializer」という単語がついた「ADC Initializer」という項目の2種類があります。(他の機能も同様ですので確認してみてください)

これらは、次のような違いがあります。

設定値設定内容
機能名のみ
例:ADC
ADコンバータを利用するために「ADコンバータ関連のレジスタ設定のコード」「ADコンバータ機能を利用する関数のコード」が生成されます。
MCCではこれらのコードを「Driver(ドライバー)」と呼んでいます。
機能名とInitializer
例:ADC Initializer
ADコンバータを利用するために「ADコンバータ関連のレジスタ設定のコード」のみ生成されます。
MCCではこのコードを「Initializer(イニシャライザー)」と呼んでいます。

「ADC Initializer」の「Initializer」とは日本語で「初期化コード」というような意味合いで、ADコンバータ機能を使用するために行うレジスタ設定などの初期設定のコード、というイメージです。

「ADC」は「ADC Initailizer」の初期化コードと、プログラムでADコンバータを使用するときの関数のコードも合わせて生成してくれます。

初期化コードとは、例えばRA2ピンをADコンバータ機能にするためにADCON0 = 0b00001001;などというコードです。このようにADコンバータを使うために必要なコードを生成してくれます。

また、関数のコードとは、例えば、ADCを開始するためのadc_ConversionStart();という関数や、結果の値を取得するadc_ConversionResultGet();という関数などを生成してくれます。プログラムではこれらの関数を使用してADコンバータ機能を利用します。


今回は、ADコンバータ機能の関数を使ってプログラム作成しますので、「ADC」を追加することにします。

なお、「ADC Initializer」を追加した場合、レジスタ設定コードのみ生成されます。

プログラムでADコンバータ機能の処理を行う場合、例えばADコンバータを開始するためにGO = 1;などのコードを書く必要があります。

ADコンバータ機能の追加と設定

それではこれから一緒に作業をしていきましょう。

ADコンバータ機能の追加

最初にADコンバータを追加します。

追加方法はどちらでも構いませんが、今回は左側の「Device Resource」から追加することにします。

次のように「Device Resource」画面を開いて、Driver、ADCの順で項目を展開していきます。

展開すると「ADC」がありますので、左側の緑色のプラスボタンをクリックします。

クリックすると、「Application Builder」画面で、ADCが追加されます。

これでADコンバータの機能追加ができました!

ADコンバータの設定

次はADコンバータの設定を行います。

今回作成するプログラムでは、RA2ピンでADコンバータ機能を使用します。またADコンバータの結果は右詰めの数値で取得します。

つまり、ADコンバータ機能の設定は次の2点を行うことになります。

設定値設定内容
使用するADCモジュールAN2(RA2ピン)
結果数値の格納右詰め

それでは、MCCでこれらの設定を行っていきましょう!

最初にADコンバータ機能の設定を行うために、「Application Builder」の「ADC」をクリックします。

右側領域に設定画面が表示されますので、先ほどの表に従って次のように設定します。

ピンの設定

今までの作業でADコンバータ機能の追加と設定は完了しましたが、RA2ピンの設定は別途必要になります。

次の図の緑色注釈の「Pin Package View」と「Pin Grid View」では、次のようにRA2ピンがADコンバータ機能として設定されていることがわかります。(「Package View」ではRA2ピンが「ANx」、つまりアナログ入力設定されています。また「Pin Grid View」ではADCの行でRA2ピンが鍵がONになってます)

ただ、右側領域の「Pins」設定を確認すると、デフォルトでRA2ピンの内部プルアップが有効になっています。

そこで、「Weak Pullup」のチェックを外します。

また、RA2ピンのカスタム名を「Button」に設定しておきます。

これでADコンバータ機能の追加と設定が終わりました!

プログラムファイルの生成と構成確認

最後にプログラムファイルを生成して、追加されたプログラムファイルを確認します。

プログラムファイル生成

プログラムファイルの生成は、前回の基本設定のときと同じです。

次のように、右側の「Project Resouce」画面の「Generate」ボタンをクリックします。

クリックするとプログラムファイルが自動生成されます。

なお、ウィンドウ下の方に、MCCが今回作業した結果が次のように表示されます。

例えば、上から4行目の赤線部分で「adc.h」というファイル名が表示されていますが、右端に「New File.」と表示されています。

「adc.h」はADコンバータ機能用のヘッダファイルで、ADコンバータ機能を新しく追加しましたので、このファイルは新規ファイル(New File)として追加されたことを意味しています。

また、中央付近の青線部分には「pins.h」というファイル名があり、右端に「Auto-merged.」と表示されています。

「pins.h」はピン設定のためのヘッダファイルで、このファイルは前回の基本設定のコード生成の時にすでに作成されていたものです。

今回はRA2ピンをADコンバータに設定して再度コード生成をしました。そのため、前回生成した「pins.h」を変更する必要があります。

今回はRA2ピンの設定を「pins.h」ファイルに(確認なしに)自動的に追加したため、右端に「Auto-merged.」(自動的に追加した、という意味)と表示されています。

今回のコード生成は、全てのファイルが新規追加か、既存ファイルへの自動追加で完了しました。


ところで、MCCを使っていると、コードが自動追加できないケースが出てきます。

状況としては、すでにMCCで設定済みの内容を変更する場合です。

例えば、前回の記事ではRA5ピンを出力に設定してコード生成しました。

このピンを入力に変更する場合、すでに生成したファイル内のコードを「変更」する必要があります。

このようにすでに生成したコードを変更する場合、MCCは本当に変更して良いか判断ができないことがあるため、確認作業があります。

この作業手順は、第32回の記事で解説します。

プログラムファイル構成確認

最後に生成されたプログラムファイルの構成を確認します。

ウィンドウ左側のProjectフォルダを確認すると、次のようにADコンバータ機能関連のファイルが新規追加されていることがわかります。


次回の記事では、前回と今回生成したプログラムファイルの中身を確認して、MCCを使ったプログラミング方法を確認します。

更新履歴

日付内容
2017.12.21新規投稿
2025.6.10MCC Melody対応
通知の設定
通知タイミング
guest
0 コメント
新しい準
古い順 一番投票が多い
本文中にフィードバック
全てのコメントを見る
目次