PIC [PICC プログラミング]

PICC はMicrochip 社のHP からダウンロードできるPIC 用C コンパイラです。HI-TECH C Compiler とも呼ばれます。
更新日 2016-02-13

インストール

MPLAB IDE をダウンロードすると付いてきて、一緒にインストールが行われます。

開発手順

MPLAB におけるプログラミングの流れを説明します。

新規プロジェクトの作成

MPLAB のツールバーよりProject → Project Wizard と進み、プロジェクトを新規作成します。フォルダは自動作成されないので、保存時に作成します。この段階でPIC の種類を 選定する事になります。コンパイル時には、ここで選んだPIC にふさわしいヘッダが読み込まれる事になります。

main.c を作る

void main() を記述したC ファイルを作成します。新規作成してテキストファイルに記述し、適当な名前で保存し、プロジェクトウィンドウ(Files) にAdd File します。
#include <pic.h>

void main()
{
	while (1)
	{
		NOP();
	}
}
この段階でビルドは通るでしょうか?通れば同じフォルダにはバイナリイメージファイル(.hex) が出来上がっているはずです。これをPIC プログラマで書き込みます。

_XTAL_FREQ を設定する

__delay_ms(), __delay_us() 等を使う為に必要なので、ファイル先頭に定義します。ちなみにこの関数はマクロ定義されています。引数の待ち時間は最終的に展開されてunsigned long を 超えないように注意する必要があります。
#define _XTAL_FREQ 	10000000	// 10MHz

他に何がインクルードされるのか確認する

まずはpic.h を覗きます。PICC のインストールフォルダ(例 C:\Program Files\HI-TECH Software\PICC\9.70\include) にあります。ファイルを開いたら、今回使う予定のPIC の 型番を調べます。例えばPIC16F886 を使うのであれば、_16F886 がプロジェクト作成時に勝手に定義されてます。その場合はpic16f887.h もインクルードされるという 訳です。
// pic.h
#if defined(_16F882)	|| defined(_16F883)	|| defined(_16F884)	||\
    defined(_16F886)	|| defined(_16F887)
	#include	<pic16f887.h>
#endif

該当するヘッダファイルを覗く

上記でインクルードされるファイルには、PIC の型番にあわせた固有のレジスタのビットフラグ名が詳細に定義されています。これを見ながら必要に応じて設定を行います。PIC によって 定義されている名称が微妙に違う事がありますので、PIC のマニュアルと勘を頼りに設定してゆきます。