
unit timer
{
	public const uint16 ID = 0;
	
	//[i] var_uint8 OS_EventFlag;
	public uint8 OS_EventFlag;
	
	//[i] event TimeEvent;
	
	//---------------------------------------------------
	//[i] var_uint8 OS_time;
	public uint8 OS_time;
	
	//---------------------------------------------------
	//[i] linkconst_int32_1.0_ Time;
	public const int32 Time = 0;
	
	//---------------------------------------------------
	//[i] var_bool isRun;
	public bool isRun;
	int32 TimeTick;
	
	//---------------------------------------------------
	//[i] function_void OS_init;
	public void OS_init()
	{
		TimeTick = 0;
		OS_time = 1;
		OS_EventFlag = 0;
		isRun = true;
	}
	//---------------------------------------------------
	//[i] function_void OS_run;
	public void OS_run()
	{
		if( !isRun ) return;
		TimeTick + 1;
		if( TimeTick >= Time / $tick$ ) {
			TimeTick = 0;
			OS_EventFlag.0(bit) = 1;
		}
	}
	//---------------------------------------------------
	//[i] function_void Stop;
	public void Stop()
	{
		isRun = false;
	}
	//---------------------------------------------------
	//[i] function_void Start;
	public void Start()
	{
		isRun = true;
	}
	//---------------------------------------------------
	//[i] function_void Clear;
	public void Clear()
	{
		TimeTick = 0;
	}
	//---------------------------------------------------
	//[i] function_void Trig;
	public void Trig()
	{
		OS_EventFlag.0(bit) = 1;
	}
}






















