/* main.c　タスク切替え制御モジュール */

/* インタフェースの取り込み */
#include "it.h"						/* 定周期生成モジュール */
#include "switch.h"					/* スイッチ入力検知モジュール */
#include "led.h"					/* LED表示制御モジュール */
#include "system.h"					/* システム状態制御モジュール */

void main(void);					/* 関数プロトタイプ宣言 */

/* メイン関数 */
/* 入力　flag_5ms:定周期到達情報（5 ms） */
void main(void){
	__DI();						/* 割込みを禁止する */
	
	/* マイコン周辺回路の設定（初期化） */
	led_port_initialize();				/* LED表示制御初期化処理 */
	interval_timer_initialize();			/* 定周期生成タイマ初期化処理 */
	intervaltimer_start();				/* 定周期生成タイマ開始処理 */

	__EI();						/* 割込みを許可する */
	
	while(1){					/* メインループ */
		/* 5 ms周期となるように待つ */
		while(flag_5ms == 0U){			/* 5 ms経過していなければループ */
		}
		flag_5ms = 0U;				/* 定周期到達情報（5 ms）クリア */
		
		switch_input();				/* スイッチ入力検知処理 */
		system_control();			/* システム状態制御処理 */
		led_display();				/* LED表示制御処理 */
	}
}
