/****************************************************************************/ /* プロジェクト名: rhand */ /* ファイル名: common.h */ /* 内容: Oaks16−SENSOR LABO */ /* サンプルプログラム センサー定義ヘッダファイル */ /* */ /* 特記事項: オプションLED(P70〜P73)追加バージョン */ /* 日付: 2006.7.10 */ /* コンパイラ: NC30WA (Ver.5.10 Release 1) */ /* note: OAKS16対応(OAKS16-SENSOR LABO) */ /* 作成者: Kazuhiko Araki */ /* */ /****************************************************************************/ /* */ /* $Revision: 1.0 $ */ /* $Date: 2006/03/27 08:34:58 $ */ /****************************************************************************/ /* マクロ定義 */ #define OFF 0x00 /* フラグのOFFを示すデータ */ #define ON 0x01 /* フラグのONを示すデータ */ #define CNT_TA1 (1250-1) /* timerA1カウンタ値 fck=f1/8→500ns=5.0e-7[s] */ /* timerA0=5.0e-7*1250=0.625[ms] */ /* 列挙型変数宣言 */ enum tag_sense /* 光センサ列挙型変数宣言 */ { S_RIGHT, /* 右センサ */ S_CENTER, /* 中央センサ */ S_LEFT, /* 左センサ */ END_OF_SENSE /* 光センサの数を示す数値 */ }; /* プロトタイプ宣言 */ extern void InitSensor( void ); /* 光測距センサ初期化関数 */ extern int checkSensor( int threshold ); /* センサ入力判定関数 */ extern int checkRightWall( int r_near, int r_far ); /* 右側壁面チェック関数 */ extern int readSensor( int sensor_no); /* センサ値取得関数 */ extern void SetCpuBoardLED( int sw ); /* CPUボードLED点灯関数 */ void SetCpuBoardLED( int sw ); /* CPUボードLED点灯関数 */ void SetOptionLED( int pat ); /* optionLED点灯関数 */ static void startAD( int sense_num ); /* AD変換開始関数 */ static unsigned int getAD( int sense_num ); /* AD変換値取得関数 */ void ta1int( void ); /* TA1割込み関数 */ /* 割込み処理の宣言 */ #pragma INTERRUPT ta1int /* ta1int()が割込み処理であることを宣言する。 */ /* 指定した関数の入口と出口において、通常の関数 */ /* の手続き以外にM16C/60 シリーズ、M16C/20 シリ */ /* ーズの全レジスタの退避・復帰とreit 命令を生 */ /* 成します。割り込み処理関数の型は、引数/戻り */ /* 値ともにvoid 型のみ有効。 */