hmmm in der ISR muss man das RXC-Flag löschen, damit direkt nach Beenden der ISR diese nicht sofort wieder angesprungen wird. Das geschieht normalerweise durch Lesen von UDR.
Im Fehlerfalls empfieht das Manual nen flush der Art
while (UCSRA & (1 << RXC)) dummy = UDR;
Falls das RXC-Flag das Poblem ist, verstehe ich aber immer noch nicht, warum ein Restart gemacht wird. Und falls der flush fehlt, geht er solange in die ISR bis das RXC resettet ist... *grübel*
Lesezeichen