学習ボードの動作確認

pp.46-73
Lチカで動作を確認する。IOの向きを設定するロジックがTRISxとAVRのDDRxとで逆であった。以後すべて、IDEはMPLAB Xを、コンパイラはXC8を 、書き込み装置はPICkit3を使い、MCCは一切使わない。
f:id:ti-nspire:20191128061008p:plain:h250

#include <xc.h>

#define _XTAL_FREQ 4000000 // クロックを定義する(ディレイ函数用)。4 MHz。

__CONFIG(
      FOSC_INTOSC // 内蔵オシレーターを使う。
    & MCLRE_OFF   // MCLRを無効化する。だからRA5が使える。
    & WDTE_OFF    // ウォッチドッグタイマーを無効化する。
);

int main(){

    OSCCON = (0b1101 << 3); // OSCILLATOR CONTROL REGISTER。4 MHz。
    
    TRISB = 0x00; // ポートBのIOを全部OUTにする。0でOUT、1でIN。
    LATB  = 0xff; // 一旦ポートBを全部Hにする。シンクなので全部のLEDが消える。

    while(1){
        LATB0 = 0; __delay_ms(800); // RB0からLを出力する。シンクなのでLEDが点く。
        LATB0 = 1; __delay_ms(200); // RB0からHを出力する。シンクなのでLEDが消える。
    }
    
    return 0;
}

f:id:ti-nspire:20191128060338p:plain:w400