
//ⲿж
unit inter
{
	public const uint8 OS_channel_INT = 0;
	link unit MCU {} = #.MCU;
	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()
	{
		//MCU.DDRD.2(bit) = 0;
		//MCU.PORTD.2(bit) = 1;
		//MCU.MCUCR.0(bit) = 0; MCU.MCUCR.1(bit) = 1;//MCU.MCUCR = 0b0000_0010; //ж0½شж
		MCU.MCUCR.0(bit) = 1; MCU.MCUCR.1(bit) = 1;//MCU.MCUCR = 0b0000_0010; //ж0شж
		MCU.GIFR.6(bit) = 1;//MCU.GIFR = 0b0100_0000; //ж0־
		MCU.GICR.6(bit) = 1;//MCU.GICR = 0b0100_0000; //ж0
	}
	//---------------------------------------------------
	void init_D3()
	{
		//MCU.DDRD.3(bit) = 0;
		//MCU.PORTD.3(bit) = 1;
		//MCU.MCUCR.2(bit) = 0; MCU.MCUCR.3(bit) = 1;//MCU.MCUCR = 0b0000_1000; //ж1½شж
		MCU.MCUCR.2(bit) = 1; MCU.MCUCR.3(bit) = 1;//MCU.MCUCR = 0b0000_1000; //ж1شж
		MCU.GIFR.7(bit) = 1;//MCU.GIFR = 0b1000_0000; //ж1־
		MCU.GICR.7(bit) = 1;//MCU.GICR = 0b1000_0000; //ж1
	}
	//---------------------------------------------------
	void init_B2()
	{
		//MCU.DDRB.3(bit) = 0;
		//MCU.PORTB.3(bit) = 1;
		//MCU.MCUCSR.6(bit) = 0;//MCU.MCUCSR = 0b0000_0000; //ж2½شж
		MCU.MCUCSR.6(bit) = 1;//MCU.MCUCSR = 0b0000_0000; //ж2شж
		MCU.GIFR.5(bit) = 1;//MCU.GIFR = 0b0010_0000; //ж2־
		MCU.GICR.5(bit) = 1;//MCU.GICR = 0b0010_0000; //ж2
	}
	//---------------------------------------------------
	//жϷ
	interrupt[ {0x0002, 0x0004, 0x0006}[OS_channel_INT] ]
	void Interrupt()
	{
		INT_event();
	}
}









