Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Also so funktioniert es mit dem Backslash nicht:
Oder meinst du das die Zeile an einer anderen Stelle stehen muss?Code:'ISR vom UART Uart_recieved: Uart_buffer = Udr 'Eingehendes Zeichen zwischenspeichern If Uart_buffer <> Chr(13) Then 'Abfrage nach Enter If Uart_buffer <> Chr(8) Then 'Abfrage nach Backspace Print Chr(uart_buffer); 'Eingehendes Zeichen ausgeben Input_uart_overlay(bytes_recieved) = Uart_buffer Incr Bytes_recieved Else Input_uart_overlay(bytes_recieved) = 0 'Zeichen löschen If Bytes_recieved > 0 Then Decr Bytes_recieved 'Zähler um Eins Verringern End If Else End If Return
Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Hallo Daniel,
du meinst Backspace (also ein Zeichen löschen und zurückgehen) und nicht Backslash, oder?
Hiermit schreibst du anschließend aber evtl. in Input_uart_overlay(0), wenn Bytes_recieved vorher =1 war
If Bytes_recieved > 0 Then Decr Bytes_recieved
Ich bin mir jetzt nicht sicher, wie die restliche Logik deines Programms ist, würde aber vermuten, dass du im Moment, wo ein Zeichen eingelesen werden soll gerade auf dem Stringende (=0) stehst. Dazu müsstest du die Reihenfolge der beiden Befehl umdrehen, also so:
If Bytes_recieved > 0 Then Decr Bytes_recieved 'Zähler um Eins Verringern
Input_uart_overlay(bytes_recieved) = 0 'Zeichen löschen
Oder was meinst damit, dass es nicht funktioniert?
Hey,
ja ich meinte Backspace! Hab die beiden verwechselt.
Mit nicht funktionieren meine ich, dass er anscheinend immernoch irgendwie falsch zählt.
Aber ich setze mich morgen nochmal damit auseinander.
Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Es ist völlig zweckfrei das Zeichen zu löschen, denn entweder überschreibst Du es das nächste Mal mit einem anderen Zeichen, da der Index dekrementiert wird, oder Du empfängst ein CR, woraufhin Du den Stringterminator "0" schreibst.
Und mach' mal ein "received" draus, das schmerzt ja im Auge![]()
Lesezeichen