FAQ | Points | Add... | Recent posts | Search | Register | Log in


Sterowanie przez rs232, potrzebny schemat układu.


Post new topic  Reply to topic      Main Page -> Forum Index -> Microcontrollers Generally -> Sterowanie przez rs232, potrzebny schemat układu.
Author
Message
marek_Łódź
Poziom 23
Poziom 23


Joined: 23 Dec 2004
Posts: 3131
Location: Łódź

Post#31 21 May 2006 15:06   

Re: sterowanie przez rs232


1. Jakiego typu jest binarna reprezentacja temperatury temp1, temp2 (to pytanie już kiedyś padło). Czy są to zmienne integer.
2. Jak przebiega synchronizacja, czy opróżniasz bufor RS przed odebraniem danych, jeśli tak, to czy nie robisz tego za wcześniej lub za późno, czy masz jakieś bajty synchronizujące (sygnalizacja początku ramki). Jeśli nie, to w jaki sposób zapewniasz zgodność faz w nadajniku i odbiorniku.
Back to top
   
KanGu
Poziom 11
Poziom 11


Joined: 07 May 2005
Posts: 76
Location: Suwałki / Gdynia

Post#32 21 May 2006 17:41   

Re: sterowanie przez rs232


Quote:

1. Jakiego typu jest binarna reprezentacja temperatury temp1, temp2 (to pytanie już kiedyś padło). Czy są to zmienne integer.




No właśnie tego pytania nie rozumiem ale pokaże jak deklarowałem zmienne
Code:


Dim Bd(9) As Byte
Dim Tmp As Integer
Dim Wynik As Single
Dim Temp1 As String * 10
Dim Temp2 As String * 10


Wynik to obliczona temperatura z czujnika zamieniam ją tak żeby miała 2 miejsca po przecinku.

Code:

Temp2 = Fusing(wynik , "#.##")


Wiec jeśli występuje jako string, a zostaje wysłana przy pomocy printbin to nie wiem w jakiej postaci widzi ja komputer w każdym bądź razie w hyperterminalu wyświetla mi się jedna obok drugiej jeśli użyje komendy printbin.

Quote:

2. Jak przebiega synchronizacja, czy opróżniasz bufor RS przed odebraniem danych, jeśli tak, to czy nie robisz tego za wcześniej lub za późno, czy masz jakieś bajty synchronizujące (sygnalizacja początku ramki). Jeśli nie, to w jaki sposób zapewniasz zgodność faz w nadajniku i odbiorniku.


Próbowałem na wiele sposobów żaden nie był efektywny więc nie wklejam ich tutaj funkcje jakich używam są wcześniej. Wymienię tylko te sposoby bez kodu.
Przypisałem procedurze timerontimer zadnie żeby co jedna sekundę wysyłała ciąg znaków np sNIS i w tym samym czasie wystartowała inna funkcja w opóźnieniu 500 ms o takim samym czasie trwania która odbiera z bufora odbiorczego odebrane dane (których nie umiem rozdzielić, uważam ze sNIS to ramka ale nie potrafię jej zinterpretować). Jako że w mikrokontrolerze mam ułożony program tak że odwołuje się co 100ms do funkcji sprawdzającej buforr odbiorczy przy wysłaniu 5 zapytań musze odczekać 500ms zanim mikrokontroler na nie odpowie.

Code:

'kwałek pętli głównej
   Waitms 100
   Call Status ' odwołanie się do pętli interpretującej
   Waitms 100
   Call Status
   Waitms 100
   Call Status
   Waitms 100
   Call Status
   Waitms 100
   Call Status
   Waitms 100
   Call Status
   Waitms 100
   Call Status
   Waitms 100
   Call Status


W sumie nie do końca rozumiem zmienne jakie występują w trakcie transmisji wiem że bez problemów wysyła mi z użyciem podanych przeze mnie funkcji w delphi dane do mikrokontrolera.
Back to top
   
marek_Łódź
Poziom 23
Poziom 23


Joined: 23 Dec 2004
Posts: 3131
Location: Łódź

Post#33 21 May 2006 21:58   

Re: sterowanie przez rs232


Jeśli w BASCOMie robisz konwersję do łańcucha i potem to wysyłasz binarnie, to idzie mniej więcej tak, jakbyś transmitował znakowo instrukcją PRINT.

Jak dotąd wszystko OK. Jeśli dalej wchodzisz w DELPHI z funkcją konwersji CharToNum, która traktuje Twoje dane jako binarne, i wymnaża kolejne znaki przez 256^n dostaniesz bzdurę. Trzeba albo zapisać temperaturę w zmiennej binarnej (np. integer) i po przesłaniu poddać konwersji, albo transmitować znakowo i zapisywać bezpośrednio w zmiennej łańcuchowej (polu edycji).
Back to top
   
KanGu
Poziom 11
Poziom 11


Joined: 07 May 2005
Posts: 76
Location: Suwałki / Gdynia

Post#34 22 May 2006 00:02   

Re: sterowanie przez rs232


Czyli jednym słowem po zrobieniu fusing musze spowrotem zmienic je na zmienna typu integer (bo fusing można tylko jako string zrobić)

wynik(ineteger)FUSINGTemp1(string)>>tempi1(integer)
Back to top
   
Google

Google Adsense


Post# 22 May 2006 00:02   





Back to top
   
marek_Łódź
Poziom 23
Poziom 23


Joined: 23 Dec 2004
Posts: 3131
Location: Łódź

Post#35 23 May 2006 08:20   

Re: sterowanie przez rs232


Masz dwie możliwości: albo zrealizujesz transfer temperatury w trybie znakowym, do czego wystarcza instrukcja PRINT ewentualnie Twój fusing.
Wtedy po stronie DELPHI otrzymujesz od razu łańcuch, który możesz np wyświetlić bezpośrednio:

Code:
editxx.text:=datastringfromBASCOM1;
edityy.text:=datastringfromBASCOM1;

albo przekonwertować do zmiennej numerycznej:

Code:
decimalseparator:='.'
temp1:=strtofloat(trim(datastringfromBASCOM1));
temp2:=strtofloat(trim(datastringfromBASCOM2));


inna propozycja to przeliczenie temperatury na decystopnie lub centystopnie (wymnożenie przez 10 lub 100) i podstawienie do zmiennej INTEGER. Po przesłaniu tej wartości przez RS instrukcją PRINTBIN trzeba skorzystać z konwersji chartonum, po czym podstawić wynik podzielony przez nasze 10 lub 100 pod zmienną SINGLE/DOUBLE.
Back to top
   
Post new topic  Reply to topic      Main Page -> Forum Index -> Microcontrollers Generally -> Sterowanie przez rs232, potrzebny schemat układu.
Page 2 of 2 Go to page Previous  1, 2
Similar topics
Sterowanie przekaźnikami prądu elektrycznego przez RS232. (6)
Sterowanie przekaznikami przez port rs232 na tranzystorach (2)
Sterowanie pwm przez port rs232 (1)
Sterowanie jedną diodą przez RS232 (5)
proste sterowanie komputerem przez rs232 (1)
sterowanie serwem z pc przez rs232 (2)
Zdalne sterowanie przez PC, może być przez rs232 (2)
Sterowanie wyświetlaczem 7 segmentowym przez port RS232 (17)
STEROWANIE SKANEREM LASEROWYM W DELPHI PRZEZ RS232 !!! HELP! (1)
Schemat układu USB-RS232 na FT232RL. (2)

Page generation time: 0.104 seconds


FAQ || Administrator || Moderators || Widgets and banners || Contact
elektroda.pl topic RSS feed