pp.184-190
このコードは単に構造体を使ってみただけであって、構造体を使う必要はない。
#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 IRCF3 = 1; IRCF2 = 1; IRCF1 = 0; IRCF0 = 1; TRISA = 0x0f; // ポートAの下位4ビットのIOをINにする。0でOUT、1でIN。 ANSELA = 0x00; // ポートAを全部ディジタル入力端子にする。 TRISB = 0x00; // ポートBのIOを全部OUTにする。0でOUT、1でIN。 LATB = 0xff; // ポートBに接続されたLEDを一旦全部消す。 // Suteという名前の構造体を定義する。 struct Sute{ char c; int i; }; // 構造体を実体化してメンバーに値を代入する。 struct Sute sute[] = {{'A' - '@', 0xf0}, {'B' - '@', 0xf0}, {'C' - '@', 0xf0},}; /* // 'A' - '@'は数値の1、'B' - '@'は数値の2、...... struct Sute sute[3]; // 構造体を実体化して、 sute[0].c = 'A' - '@' ; sute[0].i = 0xf0; // ドット記法でメンバーに値を代入する sute[1].c = 'B' - '@' ; sute[1].i = 0xf0; // 〃 sute[2].c = 'C' - '@' ; sute[2].i = 0xf0; // 〃 */ for(int i=0; i<3; i++){ LATB = ~sute[i].c ; __delay_ms(500); LATB = ~sute[i].i ; __delay_ms(500); } return 0; }
※テキストはこのあと総仕上げとして電子サイコロを作っているがこのへんで一旦やめておく。
(学習ボードのプリント基板(または学習ボードの完成品)の欲しいかたがいらしたらおわけします)。