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.
#ifndef MfG
#define MfG
Lesezeichen