Thank you for your response everyone .
I am sorry for the corrupt code I had no idea what I was doing since I am newbie to this code indention in stack exchange.
I am also new to coding formats and as @majenko has suggested about the artistic style, I have installed it in atmel studio 5.2 but there seems to be no difference at all in the format.
The new code is attached below please kindly suggest
#define F_CPU 16000000UL
#include <avr/io.h>
#include <avr/interrupt.h>
volatile char data;
void USARTInit(uint16_t ubrr_value)
{
UBRRL = ubrr_value;
UBRRH = (ubrr_value>>8);
UCSRC = (1 << URSEL)| (1 << UCSZ0) | (1 << UCSZ1);
UCSRB=(1<<RXEN)|(1<<TXEN);
}
void USARTWriteChar(char data)
{
while(!(UCSRA & (1<<UDRE)))
{ }
//Now write the data to USART buffer
UDR=data;
}
void main()
{
sei();
UCSRB |=(1<<RXCIE);
USARTInit(51);
while(1)
{
if(data=='a')
{
USARTWriteChar(data);
}
}
}
ISR(USARTRXC_vect)
{
data= UDR;
}
so here foo just represents my data='a', unfortunately avr is not responding to my inputs .
when I type "a" .