今回は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」で検索すると次のようなリストが表示されます。


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.10 | MCC Melody対応 |