(2)ヘッダファイルとマクロ命令


MPLAB XCコンパイラを使う場合のヘッダファイルの指定とコンフィギュレーションの
記述方法を説明します。


A) ヘッダファイルの記述方法
 ヘッダファイルの記述は実に簡単です。下記1行を記述するだけです。しかも常に
 同じ記述方法でよくデバイス名に関係なくなりました。

   #include  <xc.h>

 この記述によりコンパイラがプロジェクトで指定されたデバイスのヘッダファイルを
 探しに行き、自動的にインクルードしてくれます。
 実際のデバイスごとのヘッダファイルは下記フォルダにあります。
 
  C:\Program Files\Microchip\xc8\v1.33\include

 実際にインクルードされるヘッダファイル名は下記のようになります。
  アセンブラ言語の場合  :例 pic16f1947.inc
  C言語の場合       :例 pic16f1947.h


B) ヘッダで定義されているマクロ
 ヘッダファイルには、コンパイラにあらかじめ組み込まれている組み込み関数や
 マクロ命令の定義が行われており、自由に使うことができるようになっています。
 代表的なものには下記のようなものがあります。

 @ 制御用マクロ命令
   CLRWDT();  =アセンブラのclrwdt命令
   SLEEP();   =アセンブラのsleep命令
   NOP();     =アセンブラのnop命令
   RESET();   =アセンブラのreset命令
   

 A 遅延用組み込み関数
   ・マイクロ秒単位の遅延
     __delay_us((unsigned long)((x)*XTAL_FREQ/4000000.0)));
   ・ミリ秒単位の遅延
     __delay_ms(x) _delay((unsigned long)((x)*(_XTAL_FREQ/4000.0)));

    (注) クロック周波数を XTAL_FREQ として定義しておく必要がある
       #define XTAL_FREQ 32000000

 B EEPROMメモリの読み書き用関数
   ・EEPROMからの読み出し関数
     unsigned char eeprom_read(unsigned char addr);
   ・EEPROMへの書き込み関数
     void eeprom_write(unsigned char addr, unsigned char value);
 
 C 割り込みの許可禁止
   ・禁止
     di();     ( INTCONbits.GIE = 0; のこと )
   ・許可
     ei();     ( INTCONbits.GIE = 1; のこと )