【PIC】MPLAB Xの使い方(プロジェクト作成~ビルド)
PIC用のIDE(統合開発環境)としてMPLAB X という無償のソフトウェアがあります。
今回は、MPLABX を使って初めてのプロジェクト作成を行ってみます。
1.MPLABのインストール
まだ、MPLABXをインストールしていない場合は、この記事を参考にインストールしてください。
shizenkarasuzon.hatenablog.com
インストールが終わったら、MPLABXを起動してください。
2.新規プロジェクトの作成
「File」→「New Project」を選択します。(Ctrl + Shift + Nでも可)
すると、このような画面が開きます。
「Standalone Project」を選択し、「Next」をクリックします。
書き込むPICを選択します。各自で使用するPICを選択してください。ほぼ全てのPICがそろっています。
ここでは、例ととして「8-bit MCU」の「PIC16F688」を選択して進めます。
何もせずに「Next」をクリックします。
PICライターを選択します。PICKit3、4はMicrochip社が開発しているPICライターです。ライター名の左の丸印が緑色になていればそのライターは利用可能です。
秋月電子のAKI-PICプログラマボードを使用している場合は、PICKit3を選択してください。
コンパイラーを指定します。コンパイラーとは、プログラマーが書いたC言語またはアセンブリ言語のプログラムを機械語に翻訳する作業(コンパイルという)を行ってくれるソフトウェアのことです。
アセンブリ言語でプログラムを書く場合は、「mpasm」を選択し、C言語でプログラムを書く場合は、「XC8」を選択します。
※デフォルトではXC8はダウンロードされていないため、下のように「XC8」の選択肢がないことがあります。
この場合、XC8のダウンロードが必要になります。
インストール方法はこちらです。
作成するプロジェクト名と、そのプロジェクトを保存するフォルダを設定します。ここでは、プロジェクト名を「LED_BLINK」としましたが、何でも構いません。
それ以外の場所は変更せずに「Finish」をクリックします。
すると、新規プロジェクト作成画面が消えて、メイン画面が下のようになります。
3.ソースファイルの作成
PICのプログラムを編集するプロジェクトを作成することができました。次に、プログラムを書くファイルを作成します。
左上のウィンドウから「Source Files」というフォルダを右クリックして、「New」→「main.c」を選択してください。
こうすることで、新しくC言語のファイルを作成し、それを先ほど作ったプロジェクトと関連づけさせることができます。
ただし、C言語ではなくアセンブリ言語でプログラムを書く場合は、「New」→「main.asm」を選択してください。
ソースファイルのファイル名などを指定します。私は「main.c」としました。
それ以外の設定は特にいじる必要はありません。
ファイル名を指定した後、「Finish」を押します。
すると、このようなメイン画面が下のようになるはずです。
これで、ソースファイルの作成が完了しました。あとは、このファイルにプログラムを書いて、ビルドを行えば、MAPLABでの作業は完了です!
4.CONFIGの設定
PICには「Configuration Bits(コンフィグレーション・ビット)」というものがあります。パソコンでいうBIOSのようなもので、PICの基本的な動作設定を行います。ここでWDT(ウォッチドックタイマー)の設定や、CP(Code Protection)の設定などを行います。
かつては以下のように書く方法もありましたが、今ではこの書き方はエラーになるようです。
__CONFIG(FCMDIS & IESODIS & BOREN & UNPROTECT & MCLREN & PWRTEN & WDTDIS & INTIO);
代わりに、以下のような方法で、CONFIGのコードを自動生成してくれる機能が追加されました。
右上に検索(Search)項目があるので、ここから「Set Configuration Bits」というActionを検索して実行してください。
すると、右下にこのような画面が出てきます。ここで、Configuration Bits の設定を行います。
設定例として写真で上げておきます。
このように設定して、「Generate Source Code to Output」をクリックすると、このようなソースコードが自動生成されます。
これを、作成したソースファイル(main.c)の先頭部分に貼り付けてください。
5.ビルド
下のコードをコピペしてください。
// PIC16F688 Configuration Bit Settings #pragma config FOSC = INTOSCIO // Oscillator Selection bits (INTOSCIO oscillator: I/O function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN) #pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled) #pragma config PWRTE = ON // Power-up Timer Enable bit (PWRT enabled) #pragma config MCLRE = ON // MCLR Pin Function Select bit (MCLR pin function is MCLR) #pragma config CP = OFF // Code Protection bit (Program memory code protection is disabled) #pragma config CPD = OFF // Data Code Protection bit (Data memory code protection is disabled) #pragma config BOREN = ON // Brown Out Detect (BOR enabled) #pragma config IESO = OFF // Internal External Switchover bit (Internal External Switchover mode is disabled) #pragma config FCMEN = OFF // Fail-Safe Clock Monitor Enabled bit (Fail-Safe Clock Monitor is disabled) #include <xc.h> #include <htc.h> #define _XTAL_FREQ 31000 void main(void) { OSCCON = 0; PORTC = PORTA = 0; while(1){ TRISA = 0x1F; TRISC = 0x0F; RA5 ^= 1; __delay_ms(500); } return; }
そして、ビルド(Build)ボタン([)を押します。
右下のウィンドウに以下のように表示されればビルド完了です。
Memory Summary: Program space used 22h ( 34) of 1000h words ( 0.8%) Data space used 4h ( 4) of 100h bytes ( 1.6%) EEPROM space used 0h ( 0) of 100h bytes ( 0.0%) Data stack space used 0h ( 0) of 50h bytes ( 0.0%) Configuration bits used 1h ( 1) of 1h word (100.0%) ID Location space used 0h ( 0) of 4h bytes ( 0.0%) make[2]: Leaving directory 'C:/Users/Owner/MPLABXProjects/LED_BLINK.X' make[1]: Leaving directory 'C:/Users/Owner/MPLABXProjects/LED_BLINK.X' BUILD SUCCESSFUL (total time: 9s) Loading code from C:/Users/Owner/MPLABXProjects/LED_BLINK.X/dist/default/production/LED_BLINK.X.production.hex... Loading completed
BUILD SUCCESSFULと書かれていればビルド成功ですが、BUILD FAILED と書かれていれば、何らかの理由でビルドが失敗しています。ソースコードを修正してください。