閲覧総計:33444  (本日:1  昨日:2)

新しいコンパイラーを使い始めた時、最初に確認するのが、そのコンパイラーのPICの
コンフィグレーションワードの設定記述書式である。
XC8のコンフィグレーションワードの記述書式について調べたので以下に示す。 13/09/23

【目次】(項目をクリックすると、そこに飛べます)


XC8のconfig記述書式

XC8のコンフィグレーションワードの記述書式はXC8ユーザーズガイドのp.36-37
2.5.14 Specifying Configuration Bitsの項に記載されています。
(XC8ユーザーズガイドは、C:\Program Files (x86)\Microchip\xc8\v1.20\docs\manual.pdf (6.2MB 564ページ)
にダウンロードされています。)
また、PICの型番ごとの具体的な記述書式は↓ここに記載されています。
C:\Program Files (x86)\Microchip\xc8\v1.20\docs\chips\PICの型番.html
例:C:\Program Files (x86)\Microchip\xc8\v1.20\docs\chips\16f628a.html

【16f628aの記述例】

#pragma config BOREN = OFF, CPD = OFF, FOSC = INTIO, MCLRE = OFF, WDTE = OFF, CP = OFF, LVP = OFF, PWRTE = ON

 ↓設定内容をコメント記述しておく記述書式(手間ですが私はこちらの書式の方を推奨します。)

#pragma config BOREN = OFF //4VブラウンアウトリセットOFF
#pragma config CPD = OFF //データーコードプロテクションOFF
#pragma config FOSC = INTOSCIO //内部発振使用
#pragma config MCLRE = OFF //マスタークリアー機能OFF(RA5入出力として使用)
#pragma config WDTE = OFF //ウォッチドッグタイマーOFF
#pragma config CP = OFF //プログラムコードプロテクションOFF
#pragma config LVP = OFF //低電圧プログラム書き込みOFF
#pragma config PWRTE = ON //パワーアップタイマーON

★この情報は役に立ちましたか?

選択肢 投票
はい 175  
普通 30  
いいえ 35  


PICC、HT-TECH Cの記述書式を踏襲

XC8は、PICC、HT-TECH Cの後継コンパイラーですので、PICC、HT-TECH CのCONFIG書式も
踏襲してくれています。
うれしいのは、HT-TECH C v9.81以前の古いCONFIG書式も、v9.81以降の新しいCONFIG
書式のどちらも認識してくれることです。この機能で過去のPICC、HT-TECH Cのプログ
ラム資産が有効に活用できるようになります。非常にありがたい機能です。

(16F628Aでの記述例)
【PICC、v9.81以前のHT-TECH CのCONFIG書式(古い書式)もXC8は認識してくれる】

__CONFIG(BORDIS & INTIO & MCLRDIS & WDTDIS & UNPROTECT & LVPDIS & PWRTEN);

 ↓設定内容をコメント記述しておく記述書式

__CONFIG(BORDIS & //Brown-out Detect disabled
        INTIO & //INTOSC oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN
        MCLRDIS & //RA5/MCLR/VPP pin function is digital input, MCLR internally tied to VDD
        WDTDIS & //Watchdog Timer disabled
        UNPROTECT & //Flash Program Memory Code Protection off
        LVPDIS & //Low-Voltage Programming:RB4/PGM pin has digital I/O function, HV on MCLR must be used for programmin g
        PWRTEN ); //Power-up Timer enabled



(16F628Aでの記述例)
【v9.81以降のHT-TECH CのCONFIG書式(新しい書式)もXC8は認識してくれる】

__CONFIG(BOREN_OFF & CPD_OFF & FOSC_INTOSCIO & MCLRE_OFF & WDTE_OFF & CP_OFF & LVP_OFF & PWRTE_ON);

 ↓設定内容をコメント記述しておく記述書式

__CONFIG(BOREN_OFF & //Brown-out Detect disabled
        CPD_OFF & //Data memory code protection off
        FOSC_INTOSCIO & //INTOSC oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN
        MCLRE_OFF & //RA5/MCLR/VPP pin function is digital input, MCLR internally tied to VDD
        WDTE_OFF & //Watchdog Timer disabled
        CP_OFF & //Flash Program Memory Code Protection off
        LVP_OFF & //Low-Voltage Programming:RB4/PGM pin has digital I/O function, HV on MCLR must be used for programmi ng
        PWRTE_ON ); //Power-up Timer enabled

★この情報は役に立ちましたか?

選択肢 投票
はい 13  
普通 0  
いいえ 0  


変更したいconfigのみ変更する事の提案

高機能PICは、非常に多くのconfigを持ちます。その全てをひとつひとつ設定するのは
非常に大変です。また多くのconfigはデフォルトの設定値のままでOKなものがほとんど
です。

MPLAB X IEDは、PICのコンフィグレーションワードの状態を表示する機能を持っています。
この機能を利用し、まず、デフォルト設定値を確認し、変更の必要なconfigのみ、設定を
プログラムに記述する様にすれば、プログラミング効率が向上すると考えました。

PICのコンフィグレーションワードの表示方法は、
MPLAB XのメニューバーのWindows >>PIC Memory Views >>Configuration Bitsです。

【configのデフォルト値の確認方法】
MPLAB Xを起動し、所望のプロジェクトを開き、コンパイルを行う前に、Configuration Bits
の情報を表示する。この内容がデフォルトのconfig値です。
(16F628Aのデフォルトのconfig値)
xc8configデフォルト値表示画像.jpg
8つのconfigの内、CPとCPDはデフォルトのoffのままで良いので、変更したい残りの
6つのconfigのみプログラムに希望設定値を記述します。

#pragma config FOSC = INTOSCIO //内部発振使用
#pragma config WDTE = OFF //ウォッチドッグタイマーOFF
#pragma config PWRTE = ON //パワーアップタイマーON
#pragma config MCLRE = OFF //マスタークリアー機能OFF(RA5入出力として使用)
#pragma config BOREN = OFF //4VブラウンアウトリセットOFF
#pragma config LVP = OFF //低電圧プログラム書き込みOFF

ここでビルドを行い、Configuration Bitsタブをクリックし、configの内容を表示すると、
xc8config設定後の値画面.jpg
全てのconfigが希望の内容に設定された事が確認できます。

configが8個しかない、16F628Aでは、大きな効果は体感できませんが、多くのconfigを
持つ高機能なPICのプログラムを行う際は、大きな効率化が実現できると考えます。

★この情報は役に立ちましたか?

選択肢 投票
はい 33  
普通 0  
いいえ 4