/*
*/
#define __OPTIMIZE__
#include <avr/io.h>
#include <util/delay.h>
#define mclk 8000000
void uart_init(unsigned int baud)
{
unsigned int ubr=0;
//UCSRA=0X00;
//UCSRB=0X00;
UCSRC|=(1<<URSEL)|(0<<UMSEL)|(0<<UPM1)|(0<<UPM0)|(0<<USBS)|(3<<UCSZ0);
ubr=mclk/16/baud-1;
UBRRH=ubr>>8;
UBRRL=ubr;
UCSRB|=(1<<RXEN)|(1<<TXEN);
//SREG=0X80;
DDRD|=0X02;
}
void uart_transmit(unsigned char data)
{
while(!(UCSRA&(1<<UDRE)));
UDR=data;
while(!(UCSRA&(1<<TXC)));
UCSRA|=1<<TXC;
}
unsigned char uart_recive(void)
{
UCSRA|=(1<<RXC);
while(!(UCSRA&(1<<RXC)));
return UDR;
}
int main(void)
{
DDRB=0XFF;
uart_init(9600);
unsigned char k;
while(1)
{
uart_transmit(uart_recive());
PORTB=uart_recive();
if(k!=0)
{
PORTB=k;
_delay_ms(1000);
//PORTB= _BV(k%8);
//_delay_ms(1000);
}
}
}