ディジタル入力を試す

pp.102-106
4つあるスイッチにそれぞれ割り当てたLEDを点ける。前回までは__CONFIG()コンフィギュレーションビットを設定していたが、それだとエラーが出るので#pragma configに変えた。ただしどちらでもコンパイルはとおる。
f:id:ti-nspire:20191129052339p:plain:h250

#include <xc.h>

#pragma config FOSC  = INTOSC
#pragma config WDTE  = OFF
#pragma config MCLRE = OFF

#define _XTAL_FREQ 4000000

int main(){

    OSCCON = 0x68; // 4 MHZ
    
    TRISA  = 0x0f; // ポートAの下位4ビットのIOをINにする。0でOUT、1でIN。
    ANSELA = 0x00; // ポートAを全部ディジタル入力端子にする。
    
    TRISB = 0x00; // ポートBのIOを全部OUTにする。0でOUT、1でIN。

    while(1){
        // スイッチを押すと0 (点灯)が、放すと1 (消灯)がポートAに入力される。
        // ポートBの上位4ビットは常に消しておくので0xf0とORする。
        LATB = PORTA | 0xf0;
    }

    return 0;
}