第28回 MPLAB Code Configurator(4)〜基本設定〜

今回はMCC設定画面で、マイコンの基本設定を行います。

目次

この記事の説明範囲

前回の記事で、MCCの画面構成と操作方法を確認しましたので、これからMCCの設定、プログラム生成、ADコンバータを利用したプログラム作成を行なっていきます。

この記事では、次の項目を解説します。

  • MCCのPICマイコン基本設定
  • プログラム生成
  • 生成されたプログラムファイルの構成

なお、これらの手順は、作成するプログラム内容にかかわらず同じ作業内容になります。

MCCのPICマイコン基本設定

最初に、MCCで「コンフィグレーション設定」や「クロック設定」、「割り込み設定」など、マイコンのハードウェアの動作設定を行います。

設定変更しない項目についても解説していきます。

基本設定の項目と色の意味

PICマイコンの基本設定について、次の4項目を設定していきます。(一番上の「Main」というボタンの詳細については、「❷ プログラム生成」の項目で説明します)

それぞれの設定項目の概要は次の通りです。

設定項目設定内容
Clock ControlPICマイコンのクロック関連の設定を行います。
使用するクロックは外部か内部か、内部クロックを使用する場合動作周波数をいくつにするか、などの設定を行います。
Interrupt Manager割り込み設定を行います。
ピンの状態が変わったら割り込みを発生する、などの設定を行います。
Configurtion Bitsコンフィグレーションの設定を行います。
手書きプログラムで、#pragma configrationで設定する内容を、この設定で一通り設定します。
Pins各ピンの入出力設定や機能設定を行います。
例えば、RA5ピンをデジタル出力にする、などの設定を行います。

ところで、これらの設定ボタンは色が異なっていますよね。

この色の違いについて簡単にまとめておきます。ただ、次の色分けは厳密ではないようなので、あくまで参考程度にしていただければと思います。

ボタンの色意味
ピンク色

このボタン項目で設定した内容は、設定コードのみが生成されます。
例えば、コンフィグレーション設定で、ウォッチドッグタイマーをOFFにした場合、
#pragmra config WDT = OFF
という、設定コードのみ出力される、ということを意味しています。
このように設定コードのみを生成する種類をMCCでは「Driver(ドライバー)」と呼んでいます。
水色

このボタン項目で設定した内容は、設定コードと、機能を操作するコードが生成されます。
例えば、RA5ピンをデジタル出力に設定した場合、次の設定コードが生成されます。
ANSELAbits.RA5 = 1; // RA5ピンをデジタルに設定
TRISAbits.RA5 = 0; // RA5ピンを出力に設定

さらに、このRA5ピンを操作する関数も一緒に生成されます。一例として次のような関数が生成されます。
IO_RA5_SetHigh(); // LATA5 = 1;と同じ
IO_RA5_SetLow(); // LATA5 = 0;と同じ

このように、設定コードと機能を操作するコードが生成される種類をMCCでは「Library(ライブラリ)」と呼んでいます。
黄色

このボタンは、PICマイコンを動作させるためのコードを生成することを意味しています。Mainボタンは、main.cを生成するような意味合いです。
このように、PICマイコンを動作させるコードが生成される種類をMCCでは「Application(アプリケーション)」と呼んでいます。

それでは、それぞれの設定項目を確認していきましょう!

Clock Control

Clock Controlボタンをクリックすると、右側の領域に設定項目が表示されます。

一番上の青色注釈の「Generate Initializer Code」という設定項目では、次の3つの選択肢から選びます。

選択肢内容
Initialize all registers設定内容に関わらず、すべての設定コード(レジスタの設定コード)を生成します
Generate only modified registersデフォルト値から変更されている設定項目のみの設定コードを生成します
Generate with
recommended unmodified registers
デフォルト値から変更されている設定項目と、MCCおすすめの設定項目の設定コードを生成します。(MCCおすすめ、というのは「重要な」という意味合いだと思います)

どれを選ぶかは好み?によりますが、あとからコードを確認するときにすべての設定コードがあった方が確認しやすいというメリットもありますので、「Initialize all registers」を選択することにします。(その代わり、コードが長くなってどの設定が変更されているのか分かりづらくなる、というデメリットがあります)

なお、この「Generate Initializer Code」設定項目は、他の設定でも出てきます。


クロック関連の設定は、上の赤枠線内の項目です。

今回作成するプログラムは、クロックは内部クロックを使用して、動作周波数は1MHzにしますので、次のように設定を変更します。

これで設定完了ですが、この設定領域について補足しておきます。

画面上の方に「Register Initialization」というタブがあります。

このタブをクリックすると、クロック関連のレジスタごとの設定内容が表示されます。

この設定は、先ほどの設定内容を反映したものです。この画面はレジスタ設定値の確認のみで編集することはできません。

レジスタ内のビットごとの設定項目で表示されるので、レジスタ設定値の内容を確認した場合に便利ですね。


また、画面上にある「Toolbar」をクリックすると、次のような画面が表示されます。

設定項目がたくさんある場合、目的の項目を探しづらいことがあります。

そのようなときは、「設定項目の検索」の欄に項目名を入力すると検索できるようになっています。

また、設定領域の文字が小さくて見づらいことがあります。(目の老化が進むと深刻な問題です!)

そのようなときは「文字サイズの変更」にあるプラスボタンをクリックすると拡大できます。(ただし、そのボタンが小さくて見づらいですが…)

また、設定項目がツリー構造になっている場合、一度に全部展開したり閉じたりしたいことがあります。そのようなときは「設定項目の展開・閉じる」で操作可能です。

この「Toolbar」は他の設定項目共通です。

Interrupt Manager

「Interrupt Manager」ボタンをクリックすると、次のような設定画面が表示されます。

今回のプログラムでは、割り込み処理は使用しませんので、設定はこのままにします。

割り込み処理を設定する場合、使用したい割り込みの「Enable」欄のチェックをONにします。

また、上にある「Enable Single ISR Execution per entry」をONにしておくと、割り込みが複数種類ある場合、それぞれの種類に応じた処理が記述できるようなコードが生成されます。

多くの場合、割り込み種類に応じた処理をしますので、通常は「Enable Single ISR Execution per entry」はONにしておきます。

なお、割り込みを使用しない場合でもこのままの設定で問題ありません。

Configuration Bits

「Configuration Bits」ボタンをクリックすると、次のような設定画面が表示されます。

手書きでプログラムを作成する場合に、プログラム先頭で#pragma configで各種設定を行いますが、この画面ではその設定をメニュー形式で行うことができます。


今回は基本的なプロクラム作成をしますので、特にデフォルトから変更する必要はありませんが、何もしないのももったいないですので?、RA3ピンの機能を次のように変更して見ました。

これで設定完了です。

Pins

「Pins」では、PIC12F1822のピン機能の設定を行いますが、今までと設定画面が異なります。

そこで、最初に設定画面の構成から確認します。

設定画面構成

「Pins」ボタンをクリックすると、MCCの画面が次のように変わります。

大きく3つの領域があります。

「ピンの機能設定」が2つありますが、どちらも見え方が異なるだけで設定できる内容は同じです。

「ピンの機能設定」では、主にそれぞれのピンが入力か出力かの設定を行います。(TRISAレジスタの設定です)

右側の「ピンの詳細設定」領域では、機能設定したピンの詳細設定を行います。例えばピンを入力設定にした場合、そのピンの内部プルアップ抵抗を使用するかしないか、などの設定です。

ピンの設定内容

実際にピンの設定をしましょう!

今回はLEDの制御のみ行いますが、ブザーを接続しているピンの設定も合わせて行っておきます。

設定内容は次のとおりです。

ピン接続部品入出力内部プルアップ
RA4ブザー出力OFF
RA5LED

これから、ピンの機能設定を行い、そのあと詳細設定をします。

ピンの機能設定

ピンの機能設定を行うには、PIC12F1822のパッケージのイメージ上で設定します。

例えば、RA5ピンをクリックすると、上のようにピンの機能の設定メニューが出てきます。

RA5ピンを出力に設定する場合、表示されたメニューの「GPIO | GPIO | output」を選択します。

これでRA5ピンの出力設定が完了です。

同様にRA4ピンの出力に設定します。


両方とも設定すると、次のような画面表示に変わります。

画面下にある「ピンの機能設定」の表では、RA4ピンとRA5ピンのGPIO・output欄の鍵アイコンがロック状態になり、出力ピンに設定されていることを示しています。

ピンの入出力設定は、この画面で鍵アイコンをクリックすることでも可能です。(ロック状態にすると、その機能が有効、という意味です)

ピンの詳細設定

また、画面の右側の領域では、次のように出力設定にしたRA4ピンとRA5ピンの詳細設定が表示されます。

いろいろと設定項目がありますが、主要な設定項目については次の内容になっています。

設定項目内容
Custom Nameピンの名前を付けることができます。
ピン名は自分でわかりやすい名前にしておくと、読みやすいコードが書けます。
例えば、RA4ピンはブザーに接続しているので「この名前を「Buzzer」に設定しておくと、MCCで生成されるコードの中に、このピンを制御するBuzzer_SetHigh();(Buzzer端子を1にする)などの関数が生成されます。
Analogアナログ出力として使用するときにチェックをつけます。
Start HighPICマイコンの動作開始時に、出力を1にしておきたい場合、チェックをつけます。
Weak Pullup内部プルアップを有効にする場合、チェックをつけます。

今回は、ブザー接続ピンのピン名を「Buzzer」、LED接続ピンを「Led」としました。

また、出力ピンの内部プルアップはOFFにしますので、次のように「Weak Pullup」のチェックをはずしておきます。

設定は次のようにしました。


これでMCCの設定が一通り完了しました!

プログラム生成

次はプログラムファイルを生成します。

現在のMCC設定でコードを生成するには、左側の「Project Resource」を開いて「Generate」ボタンをクリックします。

これでコードが自動生成され、生成されたプログラムファイルがプロジェクトに追加されます。

生成されたプログラムファイルの構成

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

プログラムファイルの中身

この記事では、生成されたプログラムファイルの構成のみ確認します。

実際にどのようなコードが生成され、それをどのように使ってプログラム作成するかは第30回と第31回の記事で解説します。

生成されたプログラムファイルはプロジェクトのフォルダに格納されています。

生成されるプログラムファイルは、main.cファイルと、各種設定ファイルやピン制御を行う関数などのファイルです。


ところで、設定の最初の方の「Application Builder」で、「Main」というボタンがありました。

これはプログラム(アプリケーション)の設定で、次のように「main.c」が生成されるようになっています。

基本機能を使う設定だけだとしても、main.cは必要ですので、このスイッチは変更できないようになっています。


次に、実際に生成されたプログラムファイルの構成を、プロジェクトフォルダで確認します。

MCCで生成されるファイルは、ヘッダファイルとプログラムファイルで、次のようにそれぞれ「Header Files」フォルダと「Source Files」フォルダに保存されます。

main.cは主にユーザが処理を書くファイルですので、「Source Files」の直下にあります。

MCCが生成したプログラムファイルは、ユーザが作成するプログラムファイルと区別するために、「MCC Genrated Files」フォルダ(「MCCが生成したファイル」という意味)に保存されます。


以上で基本設定から最初のコード生成まで終わりました。

次回の記事では、ADコンバータ機能を追加して設定を行い、ADコンバータ関連のコードを自動生成します。

またその次の記事では、生成されたプログラムの中身を確認し、MCCが生成したコードの使い方を解説します。

更新履歴

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

>>「MCLR/VPP pin function is digital input」を選択したくてもなぜか選択できませんでした。

LVPをOFFにした状態でないと、選択できないようです。

参照

管理者
管理者
返信  kupp
5 年 前

kuppさま、

コメントどうもありがとうございました!
このあたりの仕組みはよく理解できていないので、何かわかれば補足記事を書きたいと思います。

目次