Also ich hab mal die Register-Error-Bits anzeigen lassen.
Ich arbeite nicht viel mit diesen Registerbefehlen (ich siehe einfach im Datenblatt nach, welche Bits gesetzt werden müssen und dann schreibe ich den Wert z.B. 0x04 in das Register...) also weiss ich gar nicht ob dieses Programm stimmt... Auf jeden Fall leuchten die beiden Fehler-LED's.
Das mit dem UDR=UDR funktioniert für ein einziges Zeichen, dann ist Schluss, ausser manchmal geht es per Zufall....

Huiuiuiui

Code:
SIGNAL(SIG_UART_RECV)
{
  if((USR<<FE))
  sbi(PORTC,2);
  if((USR<<DOR))
  sbi(PORTC,3);
	
  switch(inp(UDR))
  {
    case 'a': sbi(PORTC,0); cbi(PORTC,1); break;
    case 's': sbi(PORTC,1); cbi(PORTC,0); break;
    default: break;
  }
}