-
Hallo Jaecko,
der Anfang funktioniert. Nach dem 4ten Zeichen werden Zeichen zwischendurch ausgelassen. Kann das daran liegen das ich alles in die ISR geschrieben habe? Aber da muss das doch sicherlich rein, damit der µC auch jedes Zeichen mitbekommt oder?
Tobias
Code:
do
'leer
loop
Onrxd:
E_byte = Udr
Locate Zeile , Spalte
Lcd Chr(e_byte)
Incr Spalte 'SpaltenVorschub
If Spalte > 20 Then 'ZeilenVorschub
Incr Zeile
End If
If E_byte = 13 Then '13 = CR (Enter)
Spalte = 1
Zeile = 1
End If
Return
-
In ner ISR (Display-)Ausgaben machen ist tödlich, da die Zeichen durchaus mal schneller ankommen, als sie aufs Display geschoben werden können. Und wenn die ISR nochmal ausgelöst wird, während sie schon läuft, dann ist Achterbahn.
Bascom ist bei mir schon ne Zeit lang her, aber soweit ich weiss, kann man ja für den UART nen Puffer anlegen (Config Serialin oder so). Da brauchts dann auch keine direkte ISR dazu.
Einfach in der Main-Schleife schauen, ob ein Zeichen im Puffer liegt, wenn ja, Zeichen holen (Inkey()), dann die einfache Prozedur, die sonst in der ISR gemacht wird.