▼ 3052f.hはどこに?
実は私が昔入手したヘッダファイルは現在秋月のCDに収録されているものと違います。そこで、このヘッダファイルを入手する方法を記載します。この情報は2005年3月22日現在の情報なので、今後予告無く変更、または削除されてしまう可能性があるので、目的地にたどり着けない可能性がありますが、ご了承ください。
サンプルプログラムについて
上記のリンクよりダウンロードしに行く訳ですが、少々時間が掛かるので、説明しておきます。
1.まず、上記の場所で
「同意する」をクリックすると、サンプルプログラムの種類が表示されます。
2.そこで、
「H8/300Hシリーズ H8/300H Tinyシリーズ 」をクリック。
3.表示された画面の一番下に、
「開発環境システム」があるので、こちらをクリック。
4.また表示された画面の一番下に、
「同意する」があるので、クリックするとダウンロードが始まります。
ダウンロード後、解凍すると各種の色々なヘッダファイルがあります。300Hフォルダ内の、3052S.Hというのがそれです。このファイル名を3052f.hと変更して、作業は終了です。お疲れ様でした。
今の所、各所で公開されているH8/3052Fのプログラムは、このヘッダファイルを使用したものが多く、使いたいプログラムが見つかったら、ほぼそのまま使用することができます。
それ以外の理由としては、私が今まで使ってきたヘッダファイルなので、プログラミングしやすいという点もあったりします。
▼ main.cがまだ何もないので・・・
試しに簡単なプログラムをコンパイルしてみます。そうですね・・・ポート3のLEDを光らせて見ましょうか。下記にサンプルを載せます。
[main.cより]
#include "3052F.h"
#include "h8types.h"
s32 main(void)
{
s32 i;
u8 LED;
P3.DDR = 0xff; //ポート3の初期化。全部出力に設定。
LED = 0x00;
while(1)
{
P3.DR.BYTE = LED;
i = 0xffff; //時間稼ぎ用変数
while(i--); //時間かせぎ。i=0の時、ループを抜ける。
LED++;
}
return(0);
}
| |
たった、これだけ・・・簡単すぎ(笑) これをそのまま貼り付ければ準備完了です。Cygwinでtestフォルダに移動して、
make[ret]
これを打ち込むだけで、コンパイル可能です。以上です。ご苦労様でした。
▼ h8types.hって何?s32とかu8って何!?
これは、型を再定義して使用するためのヘッダファイルです。通常我々は、signed int、unsigned intなどと記述しますが、それだと長くなってしまいます。関数で値をいくつも受け取る時など、非常に見にくいです。
例.
signed int Kansuu(signed int x0, signed int x1, unsigned int x2, signed int x3)
{
(以下省略)
上記は、その一例です。しかし、それだけではなく真の狙いは、H8は16ビット、SHは32ビットとビット数が違うので、int型やlong型は、H8とSHでは違ってきます。そこで、プログラムを移植するときに、問題にならないようにするという目的があったりするのです。
そんな訳で、これからのプログラムの書式はこの方法で記述していきます。
従来 | 今後 |
signed char | s8 |
unsigned char | u8 |
signed short | s16 |
unsigned short | u16 |
signed int | s32 |
unsigned int | u32 |
signed long | s64 |
unsigned long | u64 |