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



Teraz jest 28 mar 2024, o 14:00


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 14 ] 
Autor Wiadomość
PostNapisane: 16 kwi 2019, o 20:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2014
Posty: 164
Pomógł: 3

Hej, mam problem, od kilku dni próbuję to rozwiązać ale nie potrafię. Mam komunikację PC -> AVR i AVR->PC.
AVR->PC wysyłam temperaturę i działa, PC-> AVR wysyłam wartość PWM i wygląda na to że też działa bo coś w buforze jest tylko nie potrafię odczytać danych. Otrzymuję stringa do bufora cyklicznego a na podstawie funkcji uart_getc() go odczytuje na LCD ale wartości są inne niż oczekiwane. Jak poddać konwersji dane z funkcji uart_getc na przykład na int aby móc to wyświetlić na lcd i użyć do obliczeń ?
Funkcja uart_getc() zwraca:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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


Dzięki za pomoc.

_________________
::::::: C ::::::::::
:::::: C++ :::::::::



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 kwi 2019, o 21:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2014
Posty: 164
Pomógł: 3

Widzę na PC co jest w danej chwili wysyłane do bufora i za chwilę gdy zostanie na wyświetlaczu LCD i mam dwie różne liczby bez wyraźnego związku np PC wysyła 100 a na LCD jest 49, znowu wysyłam 100 a pokazuje 55...
Robiłem to np w taki sposób:

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

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


Kodu więcej nie chcę udostępniać ponieważ funkcja w całości jest pana Mirka, najważniejsze co zwraca a jest to bajt (prawdopodobnie) znaków - czyli tablica.

edit:
Dodam tylko że operacje na PC odbieranej temperatury i potem sygnału PWM są wykonywane w Labview.

_________________
::::::: C ::::::::::
:::::: C++ :::::::::



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 kwi 2019, o 04:58 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27212
Lokalizacja: Szczecin
Pomógł: 1041

Lex_ napisał(a):
Kodu więcej nie chcę udostępniać ponieważ funkcja w całości jest pana Mirka, najważniejsze co zwraca a jest to bajt (prawdopodobnie) znaków - czyli tablica.

A po co masz pokazywać funkcje biblioteczne z książki - w nich nie doszukuj się błędu, pokaż lepiej co napisałeś w swoim main.c to wtedy będzie można podpowiedzieć co źle robisz

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 kwi 2019, o 05:32 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2561
Pomógł: 126

Próbujesz wysłać dane binarne czy Ascii?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 kwi 2019, o 10:41 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2014
Posty: 164
Pomógł: 3

Kod podeślę wieczorem bo pracuje do 19. Dane wysyłam jako znaki ASCII. kiedy nie ma nic w buforze widzę na LCD zero - czyli nic nie ma. Natomiast kiedy widzę że jest wysyłana wartość to buforze wartość też się pojawia, ale inna, nie znalazłem związku między nimi. Komunikacja standardowa: 9600, 8bit danych, 1 bit stop. Próbowałem zweryfikować wysyłane dane w ramce ale port jest używany przez program i nie mogę tego zrobić, może wymyślę coś na atmege32 żeby móc obejrzeć surowe dane.

_________________
::::::: C ::::::::::
:::::: C++ :::::::::



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 kwi 2019, o 11:39 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1146
Lokalizacja: Kraków
Pomógł: 93

Możesz do sygnału Tx z komputera podłączyć drugi konwerter USB<=>UART i sprawdzić, co wychodzi. Albo analizator stanów logicznych


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 kwi 2019, o 14:27 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27212
Lokalizacja: Szczecin
Pomógł: 1041

Cytuj:
Możesz do sygnału Tx z komputera podłączyć drugi konwerter USB<=>UART i sprawdzić, co wychodzi.

To jest najprostsza i najszybsza metoda - nie mówiąc o sprawdzeniu echa - bo jeśli masz np rozjechane transmisje to nie ma co się dziwić

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 kwi 2019, o 14:45 
Offline
Użytkownik

Dołączył(a): 05 sty 2015
Posty: 393
Lokalizacja: Mielec
Pomógł: 14

Najprawdopodobniej rozjechana transmisja,



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 kwi 2019, o 16:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2014
Posty: 164
Pomógł: 3

Co oznacza "rozjechana transmisja" ?
Propozycje @Marhef spróbuję sprawdzić. Leci plus. A pod pin RX na zestawie ATB 1.04 nie mogę się wpiąć aby to jakoś sprawdzić?

_________________
::::::: C ::::::::::
:::::: C++ :::::::::



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 kwi 2019, o 16:13 
Offline
Użytkownik

Dołączył(a): 05 sty 2015
Posty: 393
Lokalizacja: Mielec
Pomógł: 14

Rozjechana tzn. Nie ta sama prędkość baudrate, najczestrza przyczyna przy separacji galwanicznej, sam przerabialem, wepnij analizator stanów (jak masz) do Rx na ATB i sprawdzisz doklanie, ja tak debugowałem, działa.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 kwi 2019, o 17:44 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27212
Lokalizacja: Szczecin
Pomógł: 1041

Lex_ napisał(a):
Co oznacza "rozjechana transmisja" ?

Panie, panie ;) a może by tak jednak obejrzeć tę serię poradników ? ... skoro jeszcze z podstawami masz problemy? A te poradniki wyjaśniłyby ci to od A do Z ... a nawet Ziet ;)

https://www.youtube.com/watch?v=a0IOBtia8DY
https://www.youtube.com/watch?v=eqgrR-XbvIc
https://www.youtube.com/watch?v=2LJ7Q6XE8Lk
https://www.youtube.com/watch?v=IrtEPz0ftz0

na prawdę - polecam - obejrzyj

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 kwi 2019, o 20:13 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2014
Posty: 164
Pomógł: 3

Panie Mirku rozjechany to może być kot ;) żargonowe określenia nie zawsze muszą być oczywiste.
Dzięki za filmy, popatrze, pewno się jeszcze coś nauczę. Póki co jest za dużo znaków zapytania, muszę trochę je wyeliminować.
Narazie dzięki wszystkim.

_________________
::::::: C ::::::::::
:::::: C++ :::::::::



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 kwi 2019, o 13:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 lut 2014
Posty: 164
Pomógł: 3

Rozgryzłem temat panowie. Żadne tam rozjechane transmisje, wszystko obiło się o taki kawałek kodu, czyli porządną konwersję:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Może się komuś przyda. Za każdą pomoc w tym poście :p dziękuję.

_________________
::::::: C ::::::::::
:::::: C++ :::::::::



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 kwi 2019, o 14:33 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27212
Lokalizacja: Szczecin
Pomógł: 1041

to nie są żadne konwersje - a wyżej kolega micky słusznie pytał cię czy nadajesz ASCII czy BIN . Z tego co piszesz to właśnie nadawałeś BIN a oczekiwałeś ASCII ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



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: 14 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 11 gości


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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO