Hier is die komplette USART_Recive():
Code:
char USART_Receive(){

unsigned char c;

    c = uart_getc();

        if ( c & UART_NO_DATA )

        {

            /* 

             * no data available from UART 

             */

        }

        else

        {

            /*

             * new data available from UART

             * check for Frame or Overrun error

             */

            if ( c & UART_FRAME_ERROR )

            {

                /* Framing Error detected, i.e no stop bit detected */

                uart_puts_P("UART Frame Error: ");

            }

            if ( c & UART_OVERRUN_ERROR )

            {

                /* 

                 * Overrun, a character already present in the UART UDR register was 

                 * not read by the interrupt handler before the next character arrived,

                 * one or more received characters have been dropped

                 */



                uart_puts_P("UART Overrun Error: ");

            }

            if ( c & UART_BUFFER_OVERFLOW )

            {

                /* 

                 * We are not reading the receive buffer fast enough,

                 * one or more received character have been dropped 

                 */

                uart_puts_P("Buffer overflow error: ");

            }

            /* 

             * send received character back

             */

            return c;

        }

}
Das sagt der bei wirklich allen Funktionen.
PORTC &= ~ _BV(PC2);
kompiliert aber einwandfrei.