USART Communicatior AVR
This while(!(UCSRA &amp; (1&lt;&lt;RXC))); means you wait until the RXC bit is SET (turn to 1), in the UCSRA register.
When this bit is SET (turn to 1 from 0), it means your UDR register has completed receiving a byte of data.