Hallo Rakke,

die beiden letzten Zeilen sollen eine Warteschleife darstellen.
Wie du schon richtig vermutest wird sowas der Compiler wegoptimieren.
Sieht zumindest so aus, wenn man ins Asm Listing schaut (spreche allerdings nicht fließend Assembler).
Einfach mal die beiden Zeilen weglöschen und sehen ob beim Senden Zeichen verloren gehen.

Besser wäre es, die SerWrite und SerRead Funktionen auf Interrupt Betrieb umstellen, dann wird nicht unnötigt Zeit vertrödelt.
Wäre doch ne hübsche Aufgabe?

Gruß Peter