Problem polega na tym, że gdy mam ustawione 9600, data bits 8, stop bits 1, parity none jest wszystko w porządku.Ale jeśli ustawie np 4800 lub coś innego np data bits 7 już nie działa i nie wiem co jest grane. Jak używałem komendy input() wszystko pięknie działało a z inkey() nie chce.
wygląd ramki to n5chr(13)kochr(13)i20chr(13)xchr(13)
co oznacza
n - numer urządzenia
k - komenda
i - interwał w sekundach
x - koniec ramki
$regfile = "m162def.dat"
'Kwarc 14,7456MHz
$crystal = 14745600
$baud = 9600
'$sim
'-----------------------------------------------
.
.instrukcje
.
'-----------------------------------------------
'komendy ustawiajĻce transmisje na 9600
Ubrr = 95
Ucsrc = &B10000110
'-----------------------------------------------
.
.instrukcje
.
'-----------------------------------------------
'pobieranie danych
Enable Interrupts
Echo Off
'Input Odbierz
Bufor = Ischarwaiting()
If Bufor = 1 Then
Znak = Inkey()
If Znak = "n" Then
Odbierz = ""
Do
Znak = Inkey()
Odbierz = Odbierz + Znak
Loop Until Znak = Chr(13)
Nr_ster = Odbierz
Print Nr_ster
Waitms 1
End If
If Znak = "k" Then
Odbierz = ""
Do
Znak = Inkey()
Odbierz = Odbierz + Znak
Loop Until Znak = Chr(13)
Polecenie = Odbierz
Print Polecenie
Waitms 1
End If
If Znak = "i" Then
Odbierz = ""
Do
Znak = Inkey()
Odbierz = Odbierz + Znak
Loop Until Znak = Chr(13)
Czas = Odbierz
Print Czas
Waitms 1
End If
If Znak = "x" Then
Do
Znak = Inkey()
Loop Until Znak = Chr(13)
P2 = 1
Exit Sub
End If
End Ifwygląd ramki to n5chr(13)kochr(13)i20chr(13)xchr(13)
co oznacza
n - numer urządzenia
k - komenda
i - interwał w sekundach
x - koniec ramki