コンフィギュレーションビットの設定
コンフィギュレーションビットの設定方法と、ツールを使ったソースコードの自動生成について解説します。
4-11-1.コンフィギュレーションビットの設定
PICマイコンを期待通りに動作させるための環境設定である「デバイスコンフィギュレーション」について「4-10.デバイスコンフィギュレーション」で解説しました。デバイスコンフィギュレーションは「コンフィギュレーションワード」と呼ばれる1ワード(14ビット)長のレジスターによって実装され、その各ビット(コンフィギュレーションビット)に環境設定のための項目が割り当てられていることがわかりました。
ここでは、コンフィギュレーションビットの設定方法について、具体的に解説します。
#pragma命令
コンフィギュレーションビットの設定は「4-9.新規ファイル(C言語)を作成する」で作成したソースファイルmain.cの先頭部分に記述します。図4-11-1-1に示したソースファイルmain.cの#pragmaで始まる行が、コンフィギュレーションビットの設定です。
コンパイラー(ここではXC8のこと)が、ソースコードをコンパイルするとき、あらかじめ、指定されたファイルの読み込み・マクロの展開・定数の数値への置き換え・コメントの削除などの前処理を行います。この前処理をプリプロセスといい、プリプロセスのための指示をプリプロセッサー命令と呼んでいます。
#pragma命令もプリプロセッサー命令のひとつで、後ろに続くconfigと組み合わせて、コンフィギュレーションビットの設定を行います。構文は、次の通りです。
#pragma config コンフィギュレーションビットの項目名 = 設定値
設定できるコンフィギュレーションビットの項目は、デバイスによって種類や設定値が異なります。設定可能な項目の情報は、デバイス毎にドキュメントが用意されており、コンパイラー(XC8)のインストールフォルダーであるC:\Program Files (x86)\Microchip\xc8\v1.45\docs\chips内(バージョンがv4.15の場合)にあります。図4-11-1-2は、PIC16F1827の項目名と設定値(一部抜粋)です。
コンフィギュレーションビットを設定する#pragma configは、ソースコードの先頭部分に記述します。一方で「4-9.新規ファイル(C言語)を作成する」で作成したソースファイルmain.cには、先頭部分に#include <xc.h>があらかじめ記述されています。#pragmaと#includeは、いずれもプリプロセッサー命令ですが、どちらを先に記述するのでしょうか。
一般的に、#pragma config、#include <xc.h>の順で記述します。後で紹介するコンフィギュレーションビットの設定ツールでも、その順番でソースコードが自動生成されます。ただし、逆にしても問題ない(ビルド時にエラーにはならない)ようです。
PICA Tower(ピカタワー)用の設定
PICA Tower(ピカタワー)用のコンフィグレーションビットの設定は、表4-11-1-1の通りです。設定値については「4-10.デバイスコンフィギュレーション」をご覧ください。
3行目~13行目のCONFIG1がCONFIGURATION WORD 1、15行目~20行目のCONFIG2がCONFIGURATION WORD 2のコンフィギュレーションビットになります。
コンフィギュレーションビットの設定ツール
MPLAB X IDEには、コンフィギュレーションビットを設定するときの手間やスペルミスなどの間違いを軽減するためのツールが用意されています。ツールを使って、PICA Tower(ピカタワー)用のコンフィギュレーションビットを設定してみましょう。
MPLAB X IDEの「Window」メニューから「Window」>「PIC Memory Views」>「Configuration Bits」を選択します。
コンフィギュレーションビットの設定ウィンドウに、対象となるデバイス(PIC16F1827)のコンフィギュレーションビットが一覧で表示されます。
コンフィギュレーションビットの項目名(Field)を確認しながら、設定値(Option)をリストから選択していきます。
設定値(Option)を変更すると、左端にマークが付いて、行の色が変わります。すべての項目の設定を終えたら「Generate Source Code to Output」ボタンをクリックします。
出力ウィンドウに、自動生成されたソースコードが表示されます。
表4-11-1-2は、自動生成されたソースコードです。このソースコードから必要な部分をコピーして、main.cに貼り付けます。5行目から22行目までです。27行目の#include <xc.h>は、すでにmain.cにあるのでコピーは不要です。
これで、コンフィギュレーションビットの設定が終わりました。
4-11-2.ここまでのソースコード
ここまでのソースコードです。コメント行などは、記事本文とは別に適宜追加しています。
PICマイコン関連のおすすめ品
PIC16F1827を使用した、赤・緑・青・黄のLED27個を円柱状に光らせる3Dイルミネーションキットです。PIC16F1827のプログラムは書き換えが可能で、C言語によるプログラミングが学習できます。詳しいマニュアルは株式会社イーケイジャパンよりダウンロードできます。
エレキット ピカ・タワー AW-864
エレキットのアートする電子工作シリーズ。 LED(発光ダイオード)を使用した3Dイルミネーションキットです。LEDは赤・緑・青・黄の4色、全部で27個使用して、円柱状に配置したLEDを光らせます。
PICマイコンのプログラミング(C言語)について、最新の開発環境を使って解説した役立つ一冊です。
PIC16F1ファミリのアーキテクチャ、新しい開発環境であるMPLAB IDE Xの使い方、C言語によるPICのファームウェア開発方法、内蔵モジュールの使い方と具体的な製作例などについて詳細に解説しています。