
//ȴݷͳɹ
#define WAIT_SEND_OK(); while( #.MEGA2560.UCSR0A.5(bit) == 0 ) {} #.MEGA2560.UCSR0A.5(bit) = 1;

//ȴյ
#define WAIT_RECEIVE(); while( #.MEGA2560.UCSR0A.7(bit) == 0 ) {}

//崮ݼĴ
#define UDR #.MEGA2560.UDR0

//崮жԴ
#define INTERRUPT_UART interrupt [#.MEGA2560.WATCH.USART0_RX]

//ʼ
void Debug_Init()
{
	#.MEGA2560.DDRE.0(bit) = 0;
	#.MEGA2560.PORTE.0(bit) = 1;
	#.MEGA2560.DDRE.1(bit) = 1;
	#.MEGA2560.PORTE.1(bit) = 1;
}

//ò
void set_baud( int32 t_baud )
{
	//7 = 1: շͱ־
	//5 = 1: ;
	#.MEGA2560.UCSR0A = 0b0110_0010;
	//7 = 1: ʹܷж
	//4 = 1: 
	//3 = 1: 
	#.MEGA2560.UCSR0B = 0b1001_1000;
	#.MEGA2560.UCSR0C = 0b0000_0110;
	
	//Baud = (Fosc/16) / (UBRR + 1)
	//UBRR = (Fosc/16) / Boud - 1
	
	//uint32 X = 11059200;
	//uint32 X = 12000000;

	uint16 UBRR = (uint16)(uint)(XTAL / 800) / (uint16)((uint)t_baud / 100) - 1;
	#.MEGA2560.UBRR0H = UBRR.8(uint8);
	#.MEGA2560.UBRR0L = UBRR.0(uint8);
}




