Ich sehe in Deinem Code nichts was dem AVR zum Einlesen bewegt.

Einlesen geht so:
Hole_char = Ischarwaiting() ' Wenn 0 sind keine Daten zum Einlesen vorhanden

Hole_char = Inkey() 'Daten werden gelesen .... ohne diese Abfrage würde der AVR hängen wenn nichts kommt.

---------------------------------------------
'Eleganter' ginge es mit IRQ

Gento