Hallo Heylbly,
mal sehen... mit gepuffertem UART-Empfang habe ich noch nie herumgspielt, aber vielleicht finden wir ja eine Lösung.
Versuch doch als erstes mal, Dir direkt das UART-Empfangsregister anzeigen zu lassen, wenn der Controller etwas empfangen hat.
Es sieht so aus, als würdest Du die UART1-Schnittstelle verwenden (also über Pin Nr. 16 des Controllers empfangen), und dann wäre das Empfangsregister UDR1.
Ich würde auch (erstmal) den Sprung ins Unterprogramm weglassen, um den Code so einfach wie möglich zu machen. Konkret also so:
Code:
Dim X as Byte
..
Do
A = Ischarwaiting(#1)
If A = 1 then
X = UDR1
Print X
Else
Print "keine Daten kommen herein"
End if
Loop
Dann siehst Du an der Variablen X schon mal, WAS überhaupt empfangen wird. Wenn der Zahlenwert von X dann dem Dezimalwert des gesendeten Zeichens entspricht (siehe ASCII-Tabellen!), kannst Du den Wert in eine String-Variable kopieren, und dann hast Du das gesendete Zeichen.
Wieviele Zeichen sollen denn überhaupt am Stück übertragen werden? Vielleicht kannst Du das Projekt ja mal etwas detaillierter beschreiben?
Lesezeichen