Komunikacja po RS 232


Witam.
Chciałbym połączyć ze sobą dwa procki atmega8 i at89c4051 komunikacją Rs .
Procek atmega ma wysyłac informacje typu byte , kilka liczb a 4051 ma je odbierać
i wyświetlać je na wyświetlaczu lcd.
Udało mi się połączenie tych dwóch procków ,ale mam problem ze stworzeniem sposobu przesyłania
i odbierania informacji. Dochodzi czasami do gubienia znaków podczas transmisji i tym
samym informacje wyświetlane są błędne.
Pan "mirlej" zastosował w jednym z listingów coś takiego:

dim hello_word as word
....
 
 
wyslij rs:
...
hello_word=t(4)
hello_word.14=5
hello_word.15=7
....
printbin hello_word
 
return

...a jak to odebrać i wywietlić
Proszę o jakiś opis tego sposobu komunikacji
Dziękuje




Portret użytkownika mirley

Re: RS komunikacja

Generalnie to ja w tym przypadku wyświetlałem na LED wartości temperatury. Do zmiennej pomocniczej wpisałem sobie wartość wyświetlaną i dodatkowo ustawiłem dwa najstarsze bity na konkretne wartości, tak jak niżej na pewno nie napisałem:

hello_word.14=5
hello_word.15=7

bo zmienna.numer_bitu przyjmuje zawsze tylko wartości 0 lub 1

Najpierw spróbuj przesyłać jeden bajt, np co 0,1s, czy zawsze działa i czy nie ma przekłamań. Popatrz na odbieranie danych u mnie w projekcie wyświetlacz LED na RS, tam masz coś takiego:

D = Inkey()
 
 If D > 0 Then
   W(n) = D
   Incr N
   If N = 3 Then   'ile bajtów odebrać naraz w AVRach da się bezpiecznie 3 bajty a jak chcesz więcej to trzeba bufor zadeklarowac poleceniem config serialin itd patrz help
     N = 1
       tutaj sprawdzasz czy odebrane bajty W(1) i W(2) są dobre, czy wartości są z dobrego zakresu itd 
       Gosub Procedura  'wywołuje coś co np przelicza odebrane wartości w jakiś sposób
     End If
   End If
 End If

jesli wysyłasz co jakiś czas np co 100ms to warto np co 10ms sprawdzać czy wartość licznika N nie wisi przypadkiem na jakiejś wartości w środku przedziału bo znaczyło by to że zgubił sie bajt. W takiej sytuacji trzeba by było wyczyścić bufor przez wywołanie kilka razy INkey() i ustawic znów N = 1

-

UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.