閲覧総計:33797 (本日:2 昨日:3)
新しいコンパイラーを使い始めた時、最初に確認するのが、そのコンパイラーのPICの
コンフィグレーションワードの設定記述書式である。
XC8のコンフィグレーションワードの記述書式について調べたので以下に示す。 13/09/23
【目次】(項目をクリックすると、そこに飛べます)
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
★この情報は役に立ちましたか?
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
★この情報は役に立ちましたか?
高機能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値)
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の内容を表示すると、
全てのconfigが希望の内容に設定された事が確認できます。
configが8個しかない、16F628Aでは、大きな効果は体感できませんが、多くのconfigを
持つ高機能なPICのプログラムを行う際は、大きな効率化が実現できると考えます。
★この情報は役に立ちましたか?