Moin!
Ich versuche seit einiger Zeit Strings über die RS232 zu empfangen (Bascom). Leider klappt das nicht so wirklich. Einzelne Zeichen werden empfangen und auf dem LCD angezeigt, aber sobald ein String kommt, wird nur noch Müll angezeigt. Zum Senden von Strings nutze ich AVRTerm.
Hat jemand eine Idee?
Ich versuche seit einiger Zeit Strings über die RS232 zu empfangen (Bascom). Leider klappt das nicht so wirklich. Einzelne Zeichen werden empfangen und auf dem LCD angezeigt, aber sobald ein String kommt, wird nur noch Müll angezeigt. Zum Senden von Strings nutze ich AVRTerm.
Hat jemand eine Idee?
Code:
$regfile = "m32def.dat"
$crystal = 1000000
$baud = 9600 'Baudrate der UART: 9600 Baud
$hwstack = 100
$swstack = 100
$framesize = 100
Config Portd = Output
Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Porta.3 , Rs = Porta.1
Config Lcd = 16 * 2
Cls
Cursor Off
Locate 1 , 1
Config Com1 = "9600" , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
' Die LEDs dienen nur zur Kontrolle
Led1 Alias Portb.0
Config Led1 = Output
Led2 Alias Portb.1
Config Led2 = Output
Led3 Alias Portb.2
Config Led3 = Output
Dim B As Byte
Dim S As String * 10
On Urxc Onrxd
Enable Urxc
Enable Interrupts
Do
Set Led1
' Da ein 8-Zeichen-Display genutzt wird, wird der String S über 7 Zeichen gelöscht
If Len(s) >= 8 Then
S = ""
Toggle Led3
End If
Reset Led1
Loop
End
Onrxd:
Cls
Locate 1 , 1
B = Inkey()
B = B - 64
S = S + Chr(b)
Lcd S
Print S
Toggle Led2
Return