
//ⲿж
unit inter
{
	public const uint8 OS_channel_INT = 0;
	link void INT_event() {}
	
	//---------------------------------------------------
	public void init()
	{
		if( OS_channel_INT == 0 ) init_D2();
		if( OS_channel_INT == 1 ) init_D3();
		if( OS_channel_INT == 2 ) init_B2();
	}
	//---------------------------------------------------
	void init_D2()
	{
		//ж0½䴥ж
		#.MEGA328.EICRA.0(bit) = 1;
		#.MEGA328.EICRA.1(bit) = 0;
		#.MEGA328.EIFR.0(bit) = 1; //ж0־
		#.MEGA328.EIMSK.0(bit) = 1; //ж0
	}
	//---------------------------------------------------
	void init_D3()
	{
		//ж1½䴥ж
		#.MEGA328.EICRA.2(bit) = 1;
		#.MEGA328.EICRA.3(bit) = 0;
		#.MEGA328.EIFR.1(bit) = 1; //ж1־
		#.MEGA328.EIMSK.1(bit) = 1; //ж1
	}
	//---------------------------------------------------
	void init_B2()
	{
		//ж2½䴥ж
		#.MEGA328.EICRA.4(bit) = 1;
		#.MEGA328.EICRA.5(bit) = 0;
		#.MEGA328.EIFR.2(bit) = 1; //ж2־
		#.MEGA328.EIMSK.2(bit) = 1; //ж2
	}
	//---------------------------------------------------
	//жϷ
	interrupt[ {0x0002, 0x0004, 0x0006}[OS_channel_INT] ]
	void Interrupt()
	{
		INT_event();
	}
}









