/*****************************************************
system_def.h :
  μITRON サンプルプログラム
  Copyright(C) 2002 佐々木芳

システム定義
・シリアルポートを使うデバッグ用CLIタスクを組み込む
・汎用タイマタスクを組み込む
・INT1、INT2の割り込みで点灯LEDを増減する。。
・起動時からの秒数を表示する。（タイマタスクの機能を使って時間を計測）

*****************************************************/
#ifndef __SYSTEM_DEF__
#define __SYSTEM_DEF__

/*定数*/

/*タスク*/
void InitTask(VP_INT exinf);
void DebugTask(VP_INT exinf);
void TimerTask(VP_INT exinf);
void LedTask(VP_INT exinf);
void Irq12Task(VP_INT exinf);
void DisplayTask(VP_INT exinf);
void ButtonTask(VP_INT exinf);

/*割込みハンドラ*/
void Int1Handler(void);
void Int2Handler(void);


/*
生成したオブジェクトＩＤ
*/
/*タスク*/
#define TID_Init		1	/*初期化タスクID*/
#define TID_Debug		2	/*デバグCLIタスクID*/
#define TID_Timer		4	/*タイマタスクID*/
#define TID_Display		5	/*表示タスク*/
#define TID_Irq12		6	/*IRQ1,2タスク*/
#define TID_Button		7	/*ボタン監視タスク*/

/*タスク優先度*/
#define TPRI_Init		1	/*初期化タスクID*/
#define TPRI_Debug		2	/*デバグCLIタスクID*/
#define TPRI_Timer		3	/*タイマタスクID*/
#define TPRI_Irq12		4	/*IRQ1,2タスク*/
#define TPRI_Display	10	/*表示タスク*/
#define TPRI_Button		10	/*ボタン監視タスク*/


/*メイルボックス*/
#define MID_Display		TID_Display	/*秒表示タスクで使う*/

/*セマフォID*/

/*イベントフラグID*/
#define FID_Irq12		1	/*IRQ1,2タスクで使う*/

/*固定長メモリプール*/
#define MPF_Timer		1	/*タイマ用メモリブロック用*/
#define MPF_Event		2	/*イベントインスタンス用メモリブロック用*/

/*タイマ番号（０〜１５まで）*/
#define TNO_MAX			(15)	/*タイマ*/
#define TNO_Led			0		/*LEDタスクの使うタイマ番号*/
#define TNO_Display_tic	1		/*表示タスクの使うタイマ番号*/

/*タイマカウント値*/
#define TC_LED_TIMEOUT	(TIME_1SEC)	/*LEDタスクで使うタイムアウト値*/


//メッセージID一覧
//DisplayTaskの受信するメッセージID
#define EV_TIC				(0)		//１秒通知
#define EV_BUTTON_DOWN		(1)		//ボタンダウン
#define EV_BUTTON_UP		(2)		//ボタンアップ



#endif	/*__SYSTEM_DEF__*/
