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

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

//崮ݼĴ
#define UDR #.MEGA32.UDR

//崮жԴ
#define INTERRUPT_UART interrupt [#.MEGA32.WATCH.usart_RXC]

//ò
void set_baud( int32 t_baud, int32 XTAL )
{
	//7 = 1: շͱ־
	//5 = 1: ;
	#.MEGA32.UCSRA = 0b0110_0000;
	//7 = 1: ʹܷж
	//4 = 1: 
	//3 = 1: 
	#.MEGA32.UCSRB = 0b1001_1000;
	#.MEGA32.UCSRC = 0x86;
	
	//Baud = (Fosc/16) / (UBRR + 1)
	//UBRR = (Fosc/16) / Boud - 1
	
	//uint32 X = 11059200;
	//uint32 X = 12000000;

	uint16 UBRR = (uint16)(uint)(XTAL / 1600) / (uint16)((uint)t_baud / 100) - 1;
	#.MEGA32.UBRRH = UBRR.8(uint8);
	#.MEGA32.UBRRL = UBRR.0(uint8);
}




