verwende doch bitte erstmal die [c o d e] - tags für den quellcode, macht das ganze übersichtlicher
dann zu folgenden zeilen ein paar fragen
PORTC = ~empfang; //wird nicht ausgeführt
wie kommst du auf die aussage ?
PORTC = ~'D'; //verharrt hier während des delay
WELCHES delay ?
also nur mal so vom programmablauf, du setzt PORTC auf 0 oder 'E', ein interrupt kommt, logischerweise springt die anzeige sofort auf 'D' ... dann kommst du in deine if-abfrage, zeigst das empfangene byte für ein paar µS an und löscht es dann sogleich wieder mit
PORTC = ~empfang;
nimm einfach mal alles was du mit PORTC machst raus und belasse es mal bei der if abfrage mit
PORTC = ~a;
Lesezeichen