Ja wiem co chce zrobić, ale najpierw trzeba wiedzieć, czy program cokolwiek wysyła i w jaki sposób, bo być może kol. niepotrzebnie szuka błędu u siebie w programie.
Zapętlenie to chodzi mi o to, aby puścić transmisję z jednego na drugiego com'a.
Kolego free,
napisz sobie taką pętle i zobacz czy Ci coś wysyła procek.
Do
Print "A"
wait 1
Loop
Powinien Ci wysyłać znak "A" co sekundę
Jest mały postęp z tą pętlą nawiązał połączenie ale program się zawiesza a na wyświetlaczu nic się nie dziej
A z jaką szybkością chodzi ta twoja do odświeżania LCD pętla? Na LCD można pisać kilka razy na sekundę, bo tak to nic nie zobaczysz.
(24-03-2014 22:12)free napisał(a): [ -> ]Jest mały postęp z tą pętlą nawiązał połączenie ale program się zawiesza a na wyświetlaczu nic się nie dziej
O jakiej pętli kolega pisze? o tej do wysyłania ?
Połączenie jest poprawne jeżeli mam zaznaczone w programie FT 817 linie DTR/RTS
(24-03-2014 22:22)free napisał(a): [ -> ]Połączenie jest poprawne jeżeli mam zaznaczone w programie FT 817 linie DTR/RTS
Kod:
Do
Input S
Cls :
Locate 1 , 1 : Lcd S
Loop
ja się tam na bascomie nie znam, ale tu chyba nie ma nic do opóźnienia. Piszesz na LCD z pełną szybkością z jaką chodzi pętla Loop. Zmiany mogą być tak szybkie, ze nic na LCD nie zobaczysz. No chyba, że ja tu czegoś nie kumam.
Ale co rozumiesz przez poprawne połączenie, to co się wtedy dzieje, że jest poprawne.
Fotka wyżej jak to wygląda
No więc panie kolego z moich obserwacji wynika, że program ten przy próbie połączenia z radiem wysyła coś takiego (ramki po 5 bajtów):
0xFF 0xFF 0xFF 0xFF 0xFF (czyszczenie bufora)
0x00 0x00 0x00 0x00 0x0F ( Power ON)
0x00 0x00 0x00 0x00 0x03 (Read Frequency and mode)
więc pierwsze 0xFF które lecą mają zapewne za zadanie wyczyścić śmieci w buforze radia, później w następnej linijce radio zostaje włączone
a w następnej czyta częstotliwość i tryb pracy.
Jeśli teraz po tej 3-ciej ramce nie odpowiesz mu częstotliwością i trybem pracy
to się nie połączysz z programem. Program w wyniku braku odpowiedzi powtarza całą sekwencję 2 lub 3 razy (dokładnie nie wiem, bo więcej nie złapałem na analizatorze).
Więc teraz musisz to wszystko czytać, parsować i reagować w odpowiednim miejscu.
Zrób sobie bufor na 5 bajtów i do niego czytaj znaki, a potem sprawdzaj ostatni znak, jak będzie to coś z listy rozkazów, która cię interesuje to wykonasz polecenie, a jak nie to wyczyścisz bufor i będziesz czekał na następną ramkę.
Chyb więcej nie pomogę na tym etapie.
Kolega SP9RQA ma racje, że nic nie zobaczysz na LCD jeśli będziesz go tak szybko odświeżał. Nie wiem też dlaczego używasz instrukcji CLS a za nią Locate 1,1, napisz tylko tak Locate 1, 1 a pod nią Lcd "" ; S ; " ". Nie znam instrukcji Input, ale przypuszczam że jak buforze RS nie będzie bajtu to instrukcja zwróci wartość zero.
Jeszcze jedna rzecz mnie zastanawia w swoim programie masz prędkość 9600 a w programie FT 817 widzę 38400, to coś tu nie gra.