Code:
{
	static uint8_t state = 0;
	static uint8_t channel = 0;
	
	// empfangenes Zeichen auslesen
	uint8_t buffer = UDR;
	
	switch (state) 
	{
		case 0:
			if (buffer == '<') 
			{
				state = 1;
			}
			else state = 0;
			break;
		
		case 1:	
			if (buffer == 'C') 
			{
				state = 2;
			}
			else state = 0;
			break;
		
		case 2:
			if (buffer == 'H') 
			{
				state = 3;
			}
			else state = 0;
			break;
		
			
		case 3:
				channel = buffer;
				state = 4;
			
			break;
		
		case 4:	
			if (buffer == '>') 
					if (channel == '1')
					{	
					PORTD = 0b11011111;
					PORTB = 0b11110111;
					
					p_string = ch1;
					USR |= (1<<UDRE);
					}
					
					if (channel == '2')
					{
					PORTD = 0b11111111;
					PORTB = 0b11101111;
					
					p_string = ch2;
					USR |= (1<<UDRE);
					}
			else state = 0;
				break;
		default:
			state = 0;	
	}
Funktioniert leider auch nur einmal...bleibt in CH2 hängen.
Wenn ich uC resete, dann <CH1> eingebe, wechselt er...
Wenn ich jetzt <CH2> eingebe, wechselt er auch...
Und von hier an hängt er...

Wenn ich nach dem Reset mit <CH2> anfange hängt er sich gleich auf...