nö, weil in uart_get ist ja ein loop_unti_bit_is_set
Hier mal der geupdatete funktionierende code:
Code:
#include <avr/io.h>
#include <avr/sfr_defs.h>

#define F_CPU         8000000 // 8MHz Taktfrequenz
#define BAUD_RATE      9600   // gewünschte Baud-Rate für UART

void uart_println(char *s, int len) {
	while(len--) {
		loop_until_bit_is_set(UCSRA, UDRE); 
		UDR = *s;
		s++;
	}
	loop_until_bit_is_set(UCSRA, UDRE); 
	UDR = '\n';
	loop_until_bit_is_set(UCSRA, UDRE); 
	UDR = '\r';
}

uint8_t uart_readChar(void) {
	loop_until_bit_is_set(UCSRA, RXC);
	return UDR;
}

void uart_init(int tx, int rx) {
   	UBRRL = (F_CPU/(BAUD_RATE*16l)-1);
	if(tx == 1) {
		UCSRB |= (1<<TXEN);
	}
	if(rx == 1) {
		UCSRB |= (1<<RXEN);
	}
}

int main (void) {
   uart_init(1, 1);

   while(1)
   {
	char c = uart_readChar();
	char result[2];
	result[0] = c;
	result[1] = 0;
	uart_println(result, 1);
   }

   return 0;
}