
unit Pack
{
	public const uint16 ID = 0;

	const int16 max_length = 7;
	[int8*max_length] buffer;
	int16 length;
	int16 start;
	int16 cindex;
	
	public const int32 XTAL = $freq$;
	
	uint32 UD32;
	
	//оƬײ
	#include "$chip$_UART0.txt"
	
	
	//----------------------------------------------------
	//ڳʼ,:9600,8λ,1ֹͣλ,ûżУ
	public void OS_init()
	{
		Debug_Init();
		
		//Ĭϲ
		set_baud( 115200 );
		
		length = 0;
		start = 0;
		cindex = 0;
	}
	//---------------------------------------------------
	//ɨ
	public void OS_thread()
	{
		//...
	}
	
	//һЭ
	public void send_data( uint8 i, int32 d )
	{
		send_byte( 0xAA );
		send_byte( i );
		send_int32( d );
		
		uint8 sum = i + UD32.0(uint8) + UD32.8(uint8) + UD32.16(uint8) + UD32.24(uint8);
		send_byte( sum );
	}
	
	
	//=================================================================================
	
	
	//---------------------------------------------------
	//һֽ
	public void send_byte( uint8 data )
	{
		WAIT_SEND_OK();
		UDR = data;
	}
	//---------------------------------------------------
	//һַ
	public void send_int32( int32 data )
	{
		UD32 = (uint)data;
		send_byte( UD32.0(uint8) );
		send_byte( UD32.8(uint8) );
		send_byte( UD32.16(uint8) );
		send_byte( UD32.24(uint8) );
	}
	
	
	
	//ݽж
	INTERRUPT_UART
	void RXC()
	{
		//жϳжȡ UDR,˳½ж
		buffer[length] = (int)UDR;
		length + 1;
		length % max_length;
	}
}











