Strona 1 z 1

[uC + LabView] Problem z monitorem szeregowym

: 09 lis 2014 09:26
autor: danti
Dzień dobry,
jestem w trakcie przygotowywania prostego "analizatora stanów logicznych" opartego na uC oraz Labview. uC mierzy w trybie ciągłym napięcie (wynik w postaci kilku 1-3 bajtów danych oraz 1 bajtu stopu) i przy każdym pomiarze wysyła wynik za pośrednictwem RS232 do komputera. Labview ma za zadanie odczytywać wartości oraz rysować przebiegi napięć w czasie.
Niestety mam problem z odczytem danych. Oparłem się na przykładzie "Contionous Serial Write and Read" który delikatnie zmodyfikowałem (pousuwałem kilka niepotrzebnych dla mnie warunków logicznych, oraz staram się przerobić string na dec). Problem polega na tym, że odczyt wykonuje się 2-3 razy a następnie się "zamraża". Szczerze mówiąc nie wiem co można z tym zrobić. Podejrzewam że może to wynikać ze zmiennej długości ramki danych. W załączniku umieściłem "mój" kod.
Mam nadzieję że ktoś mi pomoże :(
Pozdrawiam
Dawid

[uC + LabView] Problem z monitorem szeregowym

: 09 lis 2014 17:56
autor: bogdani
Witaj

Po pierwsze, skoro to temat dotyczący LabVIEW, to czemu piszesz w dziale LabWindows/CVI? Tym razem przeniosą nie usunę :-)

Nie wiem jakie dane lecą dokładnie, ale masz ustawiony licznik, wg którego dane są odczytywane (read count). Zatem funkcja VISA Read czeka, aż żądana liczba znaków znajdzie się w buforze.

bogdani

[uC + LabView] Problem z monitorem szeregowym

: 12 lis 2014 18:20
autor: J.Sz
bogdani ma rację. Zamiast ustawiać na sztywno liczbę bajtów do oczytu skorzystaj z property node: http://zone.ni.com/reference/en-XX/help ... rial_port/
Znajdziesz go w palecie VISA>> Advanced >> Visa property node.

Co do przetwarzania ramek podrzuć jakieś przykładowe.
Myslę że w palecie string >> number/string conversion na pewno znajdziesz coś dla siebie.