O.K. das mit dem direkt in der ISR verarbeiten hat irgendwie nicht funktionniert.
Ich hab nun den UART so wie im C Tutorial (mit Interrupts).
Im der main() hab ich dann folgendes...
Code:
...
int a, b, c, d;
while(1) {
  if(uart_getc_nowait() == '$') { // $ ist hier mein Escape-Zeichen
    waitms(5);
    a = uart_getc_nowait();
    b = uart_getc_nowait();
    c = uart_getc_nowait();
    d = uart_getc_nowait();
  }
  ...
}
...
Was mich jetzt daran stört, ist dass ich nach der Escapezeichenüberprüfung das waitms(5); brauche. Ohne geht es nicht.
Komisch finde ich, dass ich es nicht zwischen den einzelnen Zuweisungen brauche.