#include "mcu.h"
#include "exti.h"

void init_exti(void)
{
	//拡張機能端子設定
	FM3_GPIO->EPFR06_f.EINT12S0 = 1;
	FM3_GPIO->EPFR06_f.EINT12S1 = 0;
	FM3_GPIO->EPFR06_f.EINT13S0 = 1;
	FM3_GPIO->EPFR06_f.EINT13S1 = 0;
	FM3_GPIO->EPFR06_f.EINT14S0 = 1;
	FM3_GPIO->EPFR06_f.EINT14S1 = 0;
	FM3_GPIO->EPFR06_f.EINT15S0 = 1;
	FM3_GPIO->EPFR06_f.EINT15S1 = 0;

	//外部割込みを禁止
	FM3_EXTI->ENIR_f.EN12 = 0;
	FM3_EXTI->ENIR_f.EN13 = 0;
	FM3_EXTI->ENIR_f.EN14 = 0;
	FM3_EXTI->ENIR_f.EN15 = 0;

	//外部割込み要求レベル
	FM3_EXTI->ELVR_f.LA12 = 1;		//立下り
	FM3_EXTI->ELVR_f.LB12 = 1;
	FM3_EXTI->ELVR_f.LA13 = 1;		//立下り
	FM3_EXTI->ELVR_f.LB13 = 1;
	FM3_EXTI->ELVR_f.LA14 = 0;		//立上り
	FM3_EXTI->ELVR_f.LB14 = 1;
	FM3_EXTI->ELVR_f.LA15 = 0;		//立上り
	FM3_EXTI->ELVR_f.LB15 = 1;

	//拡張機能を使用する
	FM3_GPIO->PFR7_f.PD = 1;
	FM3_GPIO->PFRF_f.P0 = 1;
	FM3_GPIO->PFRF_f.P1 = 1;
	FM3_GPIO->PFRF_f.P2 = 1;

	//外部割込み要因クリア
	FM3_EXTI->EICL_f.ECL12 = 0;
	FM3_EXTI->EICL_f.ECL13 = 0;
	FM3_EXTI->EICL_f.ECL14 = 0;
	FM3_EXTI->EICL_f.ECL15 = 0;

	//外部割込み許可
	FM3_EXTI->ENIR_f.EN12 = 1;
	FM3_EXTI->ENIR_f.EN13 = 1;
	FM3_EXTI->ENIR_f.EN14 = 1;
	FM3_EXTI->ENIR_f.EN15 = 1;

	return;
}
