ここでは、HEW4の使い方を説明したいと思います。なお、ターゲットは2005年の名大祭に使用した、秋月製のベースボードとし、これから使うサンプルプログラムはそのベースボード上にあるLED2つ(赤・緑)を交互に点灯させるものとします。
まず、HEW4を立ち上げます。はじめに、新規ワークスペースを作るか、既存のものを開くか聞いてきます。ここでは、新規にプロジェクトを作ります。
次に、プロジェクトの名前を決めます。今回は、LEDWINKで良いでしょう。また、保存先ディレクトリは適宜決めて下さい。「次へ」ボタンを押します。
次に、以下のウィンドウがでます。
ツールチェインは値が大きい方で。(HEW2の環境が残っている場合はここに5.xが出る場合がありますが、(1)に従ってコンパイラをインストールしてもらった場合6.xになっていると思います。「CPUシリーズ」は"300H"で、「CPUタイプ」は"3694F"を選択し、次へボタンを押します。
あとはデフォルトのままでよいでしょう。次へボタンを押していき、最後に完了ボタンを押して下さい。
すると、上のような3ペインのウィンドウが出るでしょう。
まず、左のウィンドウの"LEDWINK.c"をダブルクリックして、右のウィンドウにLEDWINK.cの内容を表示させます。そこに、以下のコードを書いて下さい。(コピペは失敗する可能性があるので、打ち込んだ方が幸せです。)
#ifdef __cplusplus
extern "C" {
void abort(void);
#endif
void main(void);
#ifdef __cplusplus
}
#endif
#define PCR8 *(volatile unsigned char *)0xFFEB // ポート・コントロール・レジスタ8の定義
#define PDR8 *(volatile unsigned char *)0xFFDB // ポート・データ・レジスタ8の定義
void main(void){
volatile unsigned int i;
PCR8 = 0x03; // PDR8の0,1ビット目を使えるように設定
while(1){
PDR8 = 0x02; // P81をON,P80をOFF
for(i=0;i<0xbfff;i++); // ウェイト
PDR8 = 0x01; // P81をOFF,P80をON
for(i=0;i<0xbfff;i++); // ウェイト
}
}
#ifdef __cplusplus
void abort(void)
{
}
#endif
内容は簡単に言うと、まずdefineレジスタの定義を行っています。次に、コメントの様に設定することでP81,P80のピンを使えるようにしています。while文を使うことでその中の動作を続けることになっていますが、while文の中で、P81とP80をウェイトを挟んでON/OFFすることで点滅しているように見せています。
これをコンパイルしてみてください。もしかしてエラーが発見された場合は、どこかに打ち間違いがあることが考えられます。
僕の環境では「L1100 (W) Cannot find "C" specified in option "start"」のようにWarningが出ますが、動作上は問題ないです。(コラ、そこっ。いい加減とか言わない。)
これで、サンプルコードのプログラミングとコンパイルが終わりました。次のページで、コンパイルして得たものを実際にボードにダウンロードしてみたいと思います。