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



Teraz jest 28 mar 2024, o 09:55


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 22 ] 
Autor Wiadomość
PostNapisane: 13 sty 2018, o 21:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 gru 2014
Posty: 25
Pomógł: 0

Witam zakupiłem powyższy moduł udało mi się go uruchomić na sprzętowym uarcie na Atmega8.
Niestety w moim projekcie mam już zajęty sprzętowy uart. Pomyślałem o zakupie biblioteki Pana Mirka do obsługi soft uarta tylko nie jestem pewien czy będzie to dobrze współpracowało.
Przez sprzętowy uart wysyłam do sterowania tym modułem przykładowo taką tablicę:
uint8_t data[]={0x7E,0xFF,0x04,0x01,0x00,0xEF};
Będą jakieś problemy żeby to wysłać za pomocą soft uarta?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sty 2018, o 02:23 
Offline
Moderator
Avatar użytkownika

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

a jakie niby mają być ?

_________________
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: 14 sty 2018, o 07:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 gru 2014
Posty: 25
Pomógł: 0

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

Z tego co pamiętam to w poradniku video do soft uarta był funkcja do wysyłania char i stringa a tu mam liczby hex.
Panie Mirku jeśli nie będzie z tym problemu to super i zaraz zamawiam Pana bibliotekę.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sty 2018, o 08:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

cześć
to sobie pozamieniasz hex -> ASCII i wyślesz.
Soft uart działa bez pudła - sprawdzone "organoleptycznie".
Są funkcje wysyłające nie tylko stringi np:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


pozdrawiam

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sty 2018, o 10:59 
Offline
Moderator
Avatar użytkownika

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

Panowie panowie - a czym się to różni? (pomijam tu różnicę może w samych wartościach)

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


od np


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


albo i od tego

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


to do wysłania każdej z tych tablic trzeba coś konwertować ? a do czego - że tak zadam nieśmiało pytanie ? (co wg was siedzi w tych tablicach? ;) )

_________________
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: 15 sty 2018, o 14:54 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 gru 2014
Posty: 25
Pomógł: 0

Są w tych wszystkich tablicach liczby typu uint8_t?
Bibliotekę dziś zakupiłem i już mam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2018, o 18:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 gru 2014
Posty: 25
Pomógł: 0

do usunięcia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2018, o 18:49 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

czarnieski napisał(a):
Ale to nie działa.
Nie działa, to znaczy co? Nic nie wysyła. Czy otrzymujesz coś innego?
Poprawnie masz skonfigurowane parametry dla soft uartu oraz go zainicjowałeś?

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2018, o 19:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 gru 2014
Posty: 25
Pomógł: 0

Sprawa wygląda tak mam bibliotekę Pana Mirka. Biblioteka działa tzn wysyła znaki string jest ok. Natomiast co do tablicy z liczbami hex jest problem. Na sprzętowym uarcie w terminalu wygląda to tak:
Obrazek
i DFPlayer działa.
Za pomocą biblioteki wysyłam to tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

W terminalu wygląda to tak:
Obrazek
i DFPlayer nie działa.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2018, o 19:45 
Offline
Moderator
Avatar użytkownika

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

czarnieski napisał(a):
Są w tych wszystkich tablicach liczby typu uint8_t?

no dokładnie są liczby - a ty wysyłasz co?

czarnieski napisał(a):
uart_putint(data[i]);

Panie Panie - co ty wysyłasz ? naprawdę warto poznać podstawy C - ZDECYDOWANIE polecam Bluebooka jeśli jeszcze nie masz

http://atnel.pl/mikrokontrolery-avr-jezyk-c.html

to wysyłasz liczby zamienione na string ... mówię ci poczytaj Bluebooka o typach w języku C, o tablicach

a na początek OBEJRZYJ ŻE DOKŁADNIE chociaż TEN PORADNIK


_________________
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: 15 sty 2018, o 20:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

czarnieski napisał(a):
i DFPlayer nie działa.
Abyś bardziej zrozumiał gdzie robisz błąd (bo Mirek już teoretycznie powiedział o co chodzi) to musisz wiedzieć, że 0x7E to jest dziesiętnie 126 a znaki ASCII liczby 126 to kody 31 32 36. Czy nie przypomina Ci to tego co widzisz ...?
Po prostu musisz użyć innej funkcji z biblioteki ...

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2018, o 20:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 gru 2014
Posty: 25
Pomógł: 0

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

O to chodziło czy raczej nie?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2018, o 20:39 
Offline
Użytkownik

Dołączył(a): 02 gru 2015
Posty: 544
Pomógł: 27

Cytuj:
O to chodziło czy raczej nie?

Wydaje mi się że nie, dlaczego bo ty masz te liczby wysłać binarnie a ty to zmieniasz funkcją utoa na ascii.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2018, o 20:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

czarnieski napisał(a):
O to chodziło czy raczej nie?
Raczej nie ... :(
Zobacz co robi funkcja suart_putint(). Zamienia ona liczbę uint8_t na reprezentujący go zapis dziesiętny jako string. Czyli bajt 0x7E (126 dziesiętnie) zamienia Ci na 3 znaki 1 2 i 6, co widzisz w terminalu.
Ty potrzebujesz wysłać wartość bez jakiejkolwiek zamiany. Czy nie masz przypadkiem funkcji o nazwie suart_putc() ?

--
Pozdrawiam
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2018, o 20:51 
Offline
Użytkownik

Dołączył(a): 02 gru 2015
Posty: 544
Pomógł: 27

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2018, o 20:53 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 gru 2014
Posty: 25
Pomógł: 0

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

Domyślam się że mam wysłać liczbę bez jej zamiany na stringa czy chara ale każda z tych funkcji przyjmuje taki właśnie argument albo zamienia go potem za pomocą funkcji itoa().

------------------------ [ Dodano po: 10 minutach ]

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2018, o 21:13 
Offline
Użytkownik

Dołączył(a): 02 gru 2015
Posty: 544
Pomógł: 27

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

------------------------ [ Dodano po: 9 minutach ]

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

rozumie że data to bufor w którym trzymasz te liczby do wysłania a i jakiego jest typu "char" czy uint8_t bo jak uint8_t to wywołaj to tak
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2018, o 21:24 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 gru 2014
Posty: 25
Pomógł: 0

Takie dane otrzymuję w terminalu:7E 7E FF 7E FF 04 7E FF 04 01 7E FF 04 01 00
tak ja wywołuje
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Coś jeszcze jest nie tak.

------------------------ [ Dodano po: 9 minutach ]

Teraz mam w terminalu 7E FF 04 01 00 EF zaraz podepnę dfplayera?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2018, o 21:41 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

A dlaczego nie zamieniłeś z pierwotnego użycia soft uartu funkcji wprost z suart_putint(data[i]) na sputchar(data[i])?

Te wszystkie proponowane rozwiązania z dodatkowymi funkcjami mają sens w przypadku wysyłania ciągów o zmiennej długości. Jak u Ciebie jest zawsze to ciąg o tej samej długości to możesz zrobić to jako zwykłą pętlę.

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2018, o 21:44 
Offline
Użytkownik

Dołączył(a): 02 gru 2015
Posty: 544
Pomógł: 27

wywołuj bez tej pętli for tak jak ci pisałem wypluwa ci to co masz w buforze data po kolei.

Cytuj:
A dlaczego nie zamieniłeś z pierwotnego użycia soft uartu funkcji wprost z suart_putint(data[i]) na sputchar(data[i])?

tak masz rację ale chciałem aby funkcja była jak najbardziej uniwersalna.



Ostatnio edytowano 15 sty 2018, o 21:47 przez tonygryps, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2018, o 21:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 gru 2014
Posty: 25
Pomógł: 0

Działa :D Wielkie dzięki tonygryps. I wszystkim za pomoc dzięki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2018, o 21:50 
Offline
Użytkownik

Dołączył(a): 02 gru 2015
Posty: 544
Pomógł: 27

Niema za co.



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 9 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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO