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



Teraz jest 28 mar 2024, o 21:33


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 39 ]  Przejdź na stronę Poprzednia strona  1, 2
Autor Wiadomość
PostNapisane: 30 mar 2016, o 14:29 
Offline
Nowy

Dołączył(a): 30 mar 2016
Posty: 3
Pomógł: 0

Panie Mirku,
Dziekuje za bardzo przystępny poradnik. Udało mi się stworzyć komunikator z wykorzystaniem UDP, działa, przesyla teksty z laptopa na tablet i odwrotnie. Jeśli dobrze rozumiem, jeśli używam funkcji "udpserv.Send (udppack)" to pakiet "udppack" zawiera dane typu "Byte" . Przez dane typu "Byte" bez problemu można przeslac kody ASCII. Jeśli potrzebuje przeslac np. 4 litery A B C D, to dane powinny (?) mieć postac 65 66 67 68 . I takie dane otrzymuje. Problem mam z przeslaniem cyfr. Potrzebuje przeslac 4 cyfry o wartości 0-255 kazda. Teoretycznie powinny wystarczyc 4 bajty. Tymczasem mogę przesylac 4 cyfry 0 wartościach 0-127 kazda. Domyslam się , ze dane typu "Byte" nie obejmują wartości 128-255. Pytanie: jak mogę przeslac 4 cyfry o wartości 0-255 kazda po UDP ?
pozdrawiam Marek.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 mar 2016, o 14:47 
Offline
Moderator
Avatar użytkownika

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

marekkkk napisał(a):
Jeśli potrzebuje przeslac np. 4 litery A B C D, to dane powinny (?) mieć postac 65 66 67 68 .

Niestety tutaj widać, że kolega KOMPLETNIE ale to KOMPLETNIE nie zapoznał się z zagadnieniem typów danych tak w ogóle, a także z tym co to są kody ASCII, więc na początek polecam poradnik:

https://www.youtube.com/watch?v=1tAXqCt5vVQ

marekkkk napisał(a):
Problem mam z przeslaniem cyfr. Potrzebuje przeslac 4 cyfry o wartości 0-255 kazda. Teoretycznie powinny wystarczyc 4 bajty.

No właśnie obejrzyj ten poradnik wyżej DOKŁADNIE

marekkkk napisał(a):
Tymczasem mogę przesylac 4 cyfry 0 wartościach 0-127 kazda. Domyslam się , ze dane typu "Byte" nie obejmują wartości 128-255

Zapewniam cię, że obejmują obejmują ;) tylko musisz zrozumieć co to jest postać liczby ze znakiem i bez znaku. Powiedz mi czy ty zajmujesz się również programowaniem mikrokontrolerów ? czy raczej tylko w B4A coś sobie piszesz ? Pytam dlatego bo jeśli coś z prockami robisz to tu mógłbym ci polecić książkę
http://atnel.pl/mikrokontrolery-avr-jezyk-c.html

jeśli nie robisz nic z prockami to weź gdzieś w necie poczytaj o typach i o zapisie liczb ze znakiem (kodowanie U2) ... ok ? Bo bajt to 8 bitów czyli wartości
0-255 a w zapisie U2 to właśnie -128 - 127 ;)

_________________
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: 31 mar 2016, o 09:08 
Offline
Nowy

Dołączył(a): 30 mar 2016
Posty: 3
Pomógł: 0

Dziekuje a poradnik. Kody ASCII okazaly się bardzo sprytne, a przy tym bardzo proste. Wprost idealne do przesylania wiadomości. A kodowanie U2 wyjasnia dlaczego w zakresie 0-127 liczby typu Int i Byte maja idenytczna postac. Teraz wiem, ze kodowanie ASCII i U2 nie rozwiazuje mojego zadania. Mam urządzenie z czterema siłownikami elektrycznymi, pozycja których zadawana jest czterema potencjometrami. Napiecie na ślizgaczach potencjometrow zmienia się w granicach 0-5V. Zamiast potencjometrow podlaczylem wyjścia czterech przetwornikow cyfrowo-analogowych 8-bitowych. Przetworniki C/A podlaczylem poprzez 4 zatrzaski do mikroprocesora, który zaprogramowałem w asemblerze, aby odebrane po UART 4 bajty wystawial na wyjście 4 zatrzaskow 8-bitowych. UART podlaczony do portu COM w komputerze PC poprzez konwerter poziomow. Aplikacja na PC zazwiera 4 suwaki Seekbar. Co 20 milisekund pozycje 4 suwakow czyli liczby 0-255 sa wysylane w postaci 4 bajtow na port COM. Obecnie probuje napisac podobna aplikacje na tablet na Androida. Uzyskalem z 4 Seekbarow 4 liczby typu Int 0-255. Jak mam e wyslac przez Wifi na laptopa uzywajac protokolu UDP?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2016, o 11:37 
Offline
Moderator
Avatar użytkownika

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

marekkkk napisał(a):
Teraz wiem, ze kodowanie ASCII i U2 nie rozwiazuje mojego zadania.

Sorki, nie obraź się bo to tylko podpowiedź dla ciebie - ale opowiadasz tu mega fantasmagorie ;) bo właśnie warto skorzystać z komunikacji ASCII w tym celu ;) No chyba że chcesz sobie utrudniać życie to proszę - rób to binarnie tzn komunikację binarną

marekkkk napisał(a):
Jak mam e wyslac przez Wifi na laptopa uzywajac protokolu UDP?

Obejrzyj sobie choć kilka moich poradników na temat ATNEL-WIFI232-T .... ostatnich i zobacz jak WSZYSTKO łatwo jest realizować właśnie za pomocą komunikacji ASCII

Po jasny gwint przesyłać bajt binarnie ? ;) no podaj mi chociaż jeden argument ale sensowny - żeby nie zastosować komunikacji ASCII ?

czyli zamiast przesyłać ramki danych z czterema bajtami danych binarnie to czemu nie zrobić ramki ASCII np

CA,124,32,76,234

proszę bardzo masz string - załóżmy że jego pierwszy token mówi o tym co leci teraz, czyli np cztery wartości pomiarów C/A i później po przecinkach cztery wartości .... w ASCII .... co za problem po drugiej stronie zrobić parsowanie danych czyli rozebrać ten string na tokeny i zamienić liczby ASCII na wartości binarne ?

Tak to się robi panie kochany i to jest chleb powszedni ;)

_________________
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: 31 mar 2016, o 11:58 
Offline
Nowy

Dołączył(a): 30 mar 2016
Posty: 3
Pomógł: 0

Przyznaje racje. Rzeczywiscie wszystko latwo jest zrealizować za pomocą kodowania ASCII. A przy przesyle binarnym upieram się tylko dlatego, ze mam już gotowy odbiornik przystosowany do odbioru 4 bajtow.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2016, o 13:11 
Offline
Moderator
Avatar użytkownika

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

No to ok - jeśli masz gotowy odbiornik i tam NIC nie musisz zmieniać ... tylko słać ciurkiem paczki po 4 bajty każda to co za problem znowu ? ;)

no wysyłasz np


char( bajt1 ) & char( bajt2 ) & char( bajt3) & char( bajt4 )

i już ;) Tylko ciekaw jestem czy tak mają wyglądać tylko te ramki ? czy może jeszcze coś ? Jakie mają być przerwy minimalne między nimi ... no ale to już ty pewnie znasz te szczegóły

_________________
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: 6 wrz 2017, o 19:41 
Offline
Użytkownik

Dołączył(a): 03 gru 2016
Posty: 56
Lokalizacja: Mszczonów
Pomógł: 0

ares500 napisał(a):
Witam wszystkich
Mam drobne pytanie, czy ktoś może domyślać się od jaki błąd powoduje wysłanie z atmegi zamiast tekstu takie coś:

--> ��[ͱ���*'A���
oczywiście ze smarta i komputera jest ok
--> Windows PC
--> to ja telefon


Podbijam pytanie. Prędkość w mkuart.h mam 115200, WiFi śmiga po 115200, procek ustawiony na 8mhz z fusebitów przez kalkulator.
Jednak na tel pojawiają się takie krzaki jak u kolegi, natomiast na wyświetlaczu LCD cały czas "START..." I nic sie nie dzieje.
Mama wrażenie że jakaś drobnostka gdzieś mi uciekła a przejrzałem dzisiaj większość poradników z tym związanych.
Proszę o podpowiedź bo i tak już cały dzień poszedł na marne.

Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 wrz 2017, o 19:48 
Offline
Użytkownik

Dołączył(a): 29 mar 2012
Posty: 595
Lokalizacja: Jaworzno
Pomógł: 39

A czy masz możliwość zmiany kwarca przy procku na zewnętrzny? Jakiś bardziej przyjazny dla rs232?

_________________
Pozdrawiam
PP



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 wrz 2017, o 20:57 
Offline
Użytkownik

Dołączył(a): 03 gru 2016
Posty: 56
Lokalizacja: Mszczonów
Pomógł: 0

no i naprowadziłeś mnie. Zmieniłem na zewnętrzy kwarc z zestawu ATB w fusach >8MHz. W eclipse ustawiłem częstotliwość 11059200 i poszło. Czułem że to jakaś pierdółka. Szkoda dnia zmarnowanego przez takie małe cuś....



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: 39 ]  Przejdź na stronę Poprzednia strona  1, 2

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 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