MPLAB XとXC8でPIC開発環境を整える

久しぶりにPICの開発環境を作ろうとした所、色々変わっていたのでメモ。

最初にMPLAB Xをインストール

ダウンロード

http://www.microchip.com/mplab/mplab-x-ide こちらよりダウンロードし、インストールする。

インストール

インストール方法はこちらで紹介されています。

MPLABX IDE使い方:MPLAB X インストール方法

次に、XC8コンパイラをインストール

ダウンロード

http://www.microchip.com/mplab/compilers

インストール

こちらでインストール方法が紹介されています 

MPLAB IDE使い方:XC8コンパイラのインストール方法

サンプルソース

こちらで、XC8コンパイラの使い方やサンプルソースが公開されて参考になります。 

MPLAB IDE使い方:PICの動かせ方入門一覧

日本語マニュアル

こちらに日本語マニュアルがあります  http://ww1.microchip.com/downloads/jp/DeviceDoc/50002173A_JP.pdf

MCC(MPLAB® Code Configurator)をインストール

アドインとしてインストール

MCC(MPLAB® Code Configurator)をインストールします。こちらでインストール方法が紹介されています。 アドインとしてインストールします。 hirobe.tea-nifty.com ADCやシリアルなどの内部ペリフェラルを動かすコードを自動生成してくれます。 今後はこれを使ってくださいということで過去あったペリフェラルライブラリ(plib)が無くなっています。 MCCが対応していないデバイスや手動でやりたい、過去のコードを使いたいというときは次の方法でPlibペリフェラルライブラリ)をインストールできます。

ペリフェラルライブラリをインストール

ダウンロード

ペリフェラルライブラリをダウンロードしインストールする。 Peripheral Libraries (PLIBS) http://www.microchip.com/mplab/compilers

使い方・設定

使い方はこちらで詳しく説明されている。使うためにはプロジェクトの設定変更が必要。

tool-lab.com

XC8サンプルソース

XC8でLチカを書くとこんな感じです。 PICで「Cで書いた」と書いてあってもコンパイラが違うとコンパイルできないので難しいですね。

/*
 * File:   main.c
 * Author: garyo_000
 *
 * Created on December 28, 2016, 11:56 PM
 */



// PIC16F648A Configuration Bit Settings

// 'C' source line config statements

// CONFIG
#pragma config FOSC = HS        // Oscillator Selection bits (HS oscillator: High-speed crystal/resonator on RA6/OSC2/CLKOUT and RA7/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       // RA5/MCLR/VPP Pin Function Select bit (RA5/MCLR/VPP pin function is MCLR)
#pragma config BOREN = ON       // Brown-out Detect Enable bit (BOD enabled)
#pragma config LVP = ON         // Low-Voltage Programming Enable bit (RB4/PGM pin has PGM function, low-voltage programming enabled)
#pragma config CPD = OFF        // Data EE Memory Code Protection bit (Data memory code protection off)
#pragma config CP = OFF         // Flash Program Memory Code Protection bit (Code protection off)

// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.
#define _XTAL_FREQ 20000000
#include <xc.h>

void main(void) {
    
    TRISB = 0;
    
    while(1){
        RB0 = 1;
        __delay_ms(1000);
        RB0=0;
        __delay_ms(1000);
    }
    
    
    return;
}