Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 29 mar 2026, o 16:10


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 11 paź 2014, o 19:08 
Offline
Nowy

Dołączył(a): 20 sty 2014
Posty: 17
Pomógł: 0

Witam,

Od pewnego czasu męczę się z przesyłaniem najprostszych znaków przez RS232 do komputera. Do tego celu stworzyłem bibliotekę, o której mowa w poradniku pt. "Przetwornik ADC w AVR - część 03". Wszystko oczywiście działa, jednak tylko przy użyciu Putty. Do wizualizacji przesyłanych danych postanowiłem jednak użyć programu LabVIEW. Zbudowałem najprostszy program realizujący jedynie odbieranie i prezentację odebranych znaków. Jednak nie do końca działa tak jak powinno. Wyświetlają się na przemian znaki "ABC" i "CBA" ale nie co 200ms, tylko w losowych odstępach czasu. Ponadto rzadko jest to "ABC" albo "CBA"... zazwyczaj wyświetlają się jeszcze jakieś krzaki.

Procesor to Atmega8 taktowana wewnętrznym oscylatorem z częstotliwością równą 8 MHz. Ramka standardowa, tzn. 8, n, 1. Taka sama ramka ustawiona w menadżerze urządzeń i w programie LabVIEW. Prędkość transmisji 19200 bodów.

Kod programu:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Biblioteka:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


I widok na LabVIEW:

Obrazek

Może ktoś ogarnia temat LabVIEW i byłby w stanie pomóc? Gdzie popełniam błąd?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 paź 2014, o 19:20 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Czekasz na '\n' a wysyłasz tylko "ABC". Spróbuj może "ABC\n"

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 paź 2014, o 20:27 
Offline
Nowy

Dołączył(a): 20 sty 2014
Posty: 17
Pomógł: 0

Termination char jest wylaczone, takze to raczej nie powinno miec wplywu na prace ukladu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 paź 2014, o 20:41 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 maja 2014
Posty: 317
Pomógł: 19

Miles napisał(a):
Termination char jest wylaczone, takze to raczej nie powinno miec wplywu na prace ukladu.

Nie masz włączonej żadnej kontroli transmisji poza sztywnym ustaleniem czasu. Problem nie polega prawdopodobnie na tym, co jest od strony mikrokontrolera, tylko od tej drugiej strony, tzn. PC'et -dlatego Putty i LabView wykazują inne zachowanie. Spróbuj tak jak Kolega Krauser Ci radzi WŁĄCZYĆ termination char i wtedy po stronie mikrokontrolera wysyłasz po ciągu znaków dodatkowo \n (CR+LF), lub włącz kontrolę XON/XOFF.

Pozdrawiam! J23

_________________
"O sygnałach bez całek" Czesław Frąc



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 paź 2014, o 23:04 
Offline
Nowy

Dołączył(a): 20 sty 2014
Posty: 17
Pomógł: 0

Niestety to nic nie zmieniło...
Już brakuje mi pomysłów co może być nie tak.

edit:
Zmniejszyłem prędkość do 9600 bodów i jest lepiej. Nie pojawiają się już żadne krzaki i dziwne znaczki. Ale nadal czas pomiędzy zmianami jest losowy i kolejność liter czasami się przestawia i wychodzi jakieś BAC, albo samo BA. Co jakiś czas wyskakuje też błąd "LabVIEW: Scan failed. The input string does not contain data in the expected format."



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 paź 2014, o 09:16 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

A bufor nie jest za mały?

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 paź 2014, o 12:44 
Offline
Nowy

Dołączył(a): 20 sty 2014
Posty: 17
Pomógł: 0

Okazało się, że kompletnie źle podszedłem do tematu od strony LabVIEW. Tak wygląda nowy program:
Obrazek

Teraz nie ma żadnych krzaków. Odstępy czasu również są prawidłowe. Jednak gdy uruchamiam układ (naciskam "Run") to pierwsza odczytana wartość czasami jest inna niż przesyłana, co widać na załączonym rysunku. Mikrokontroler wysyła na przemian wartość 1 i 2.
Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Google [Bot] i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO