[][mobile][Homepage][BBS][Blog][YouTube][asablo]

過去の記事の検索が簡単にできるよ (・∀・) 例 ランチャー9
カスタム検索

Microchip XC8のCONFIGの表記2013/02/06 23:15:30



BBSでconfig表記についてご質問を頂いた時に、configワードが2つあるPICマイコンは2回に分けて__configを定義する事で設定ができると伝えた。


XC8のマニュアルにもそのことが書いてあるのだが、色々調べると#pragmaによって設定出来るようだ。Hitech PICCの時代は、
C:\Program Files\HI-TECH Software\PICC\9.83\include
から該当のチップのヘッダーファイルをテキストエディタで開いて、configのシンボルやレジスターのシンボルを調べたのだが、Microchip XC8になると、
C:\Program Files\Microchip\xc8\v1.12\include
にヘッダーファイルが存在するが、その中身にconfigで設定するシンボルが記載されていない。
暫くは、昔のHitech PICCのヘッダを参照しては__configで書いていたのだが、



なんと、C:\Program Files\Microchip\xc8\v1.12\docs\chips の部分にデバイス別のhtmlファイルが存在している事をtwitterで知った。


ダブルクリックすると、確かにconfigについて情報が書かれている。特に#pragma configを使えば設定できる事も書いてある。以前にMPLABXでconfigに構文エラーが出ていたのも、この事がどうやら原因らしい。



というわけで、早速書きなおしてみる。バックスラッシュ(\ ¥)は次の行を繋ぐためのものある。
一行でまとめられるのは便利である。それでは早速ビルド。

あれ?8000000=INTOSCは定義なしとエラーがでる。何故だ?



FOSC=INTOSCの部分を削除してビルド。今度は成功。色々やっていく内に、この8000000というのはdelayマクロで使われる、_XTAL_FREQの8メガ設定じゃないのか?試しに4000000とかにしてみると、エラーが4000000=INTOSCに変わった。あ、もしかして#pragmaの位置が悪いのか!


#pragma configで定義

ということで、#pragmaの位置を色々includeする手前の先頭になるようにmain.hの最初に記述。
そしてビルドしたら問題なくビルドが完了した。config設定内容を確認したり、パラメータを変えて確認もしてみたりして問題が無いことを確認。

従来の位置のconfig部分に#pragma configを書くと、うまく動かない事があるということが分かった。MPLABXでもこの書き方になっているので今後は#pragma configを使うようにしてみる。

MPLABX使わないのか? と言われそうだが (´・ω・`) まだ MPLAB IDE使いやすいんだよねw

追記:


[Configuration bits] ウィンドウ内で右クリックし、「Generate Source Code to Output」を選択する事により、このウィンドウ内の設定を [Output] ウィンドウにエクスポートする事もできます。[Output] ウィンドウにエクスポートしたコードは、アプリケーション コードにコピーできます。
MPLABXでは、この様に操作すると簡単にConfiguration bitsを得ることが出来るようだ。
MPLABXの説明書に日本語版(pdf)があった事をすっかり忘れていたw
情報コメントを頂きありがとうございます。

追記

MPLABXで開発すると、色々強力な機能が使える。まずは動画をご覧あれ!


MPLABXならconfigが自動生成できる







Google
www Blog HP BBS


air_variableサイトをまとめて検索 
カスタム検索
[][admin][mobile][Homepage][BBS][Blog][YouTube][asablo]