
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_int32_w v_Time;
	public int32 v_Time;
	
	//---------------------------------------------------
	//[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;
		
		v_Time = Time;
	}
	//---------------------------------------------------
	//[i] function_void OS_run;
	public void OS_run()
	{
		if( !isRun ) return;
		TimeTick + 1;
		if( TimeTick >= v_Time / $tick$ ) {
			TimeTick = 0;
			OS_EventFlag.0(bit) = 1;
		}
		#include "$run$.txt"
	}
	//---------------------------------------------------
	//[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 set_time int32;
	public void set_time( int32 t )
	{
		v_Time = t;
	}
	//---------------------------------------------------
	//[i] function_void reload_time;
	public void reload_time()
	{
		v_Time = Time;
	}
}






















