<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=4&amp;t=23259&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2020-08-17T21:59:29+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=23259&amp;mode</id>
<entry>
<author><name><![CDATA[Morales]]></name></author>
<updated>2020-08-17T21:59:29+01:00</updated>
<published>2020-08-17T21:59:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228678#p228678</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228678#p228678"/>
<title type="html"><![CDATA[Re: Filtracja otrzymanych danych. UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228678#p228678"><![CDATA[
Dokładnie. Każda ramka kończy się albo bajtem '1A', który w dec jest równy 26, albo '2A', który w dec jest równy 42. Właśnie jutro będę próbował przerobić bibliotekę z greenbook'a. Myślałem po prostu o zmianie wartości w funkcji switch case z 13 (enter) na własnie 26 oraz 42. Mówię tutaj o switch case, który jest zawarty w przerwaniu USART_RXC_vect. Jak to zadziała to dalej tylko to jakoś sparsować... Najgorsze jest to, że funkcję typu strcmp() czy strtok() wymagają jako argumentów zmiennych typu char, przez co nie moge ich wykorzystać ;/. Ogólnie po obejrzeniu Pana poradników z biblioteki MK_Multi_Uart wpadłem na pomysł, żeby wszystkie wskaźniki przerobić na typ void. To powinno mi pomóc. <br /><br />Jeżeli przegram z tym zadaniem, to teraz dzięki Panu mam ten komfort psychiczny z tyłu głowy, że zawsze mogę skorzystać z Pana bilbioteki, która na pewno w 100% będzie działać. <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21510">Morales</a> — 17 sie 2020, o 21:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2020-08-17T21:42:48+01:00</updated>
<published>2020-08-17T21:42:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228677#p228677</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228677#p228677"/>
<title type="html"><![CDATA[Re: Filtracja otrzymanych danych. UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228677#p228677"><![CDATA[
Wydaje mi się, że absolutna PODSTAWA to opanowanie komunikacji ASCII ... jak to zrozumiesz i już nie będziesz miał z tym problemów to myślę że nadejdzie czas aby zabrać się za binarkę, która wbrew pozorom jest trudniejsza od komunikacji ASCII szczególnie jak chodzi o binarkę opartą na timeoutach bazujących na wielkrotności czasu trwania pojedynczej ramki.<br /><br />Po drugie - np wspominałeś wcześniej że masz np ramki HEX, ale każda z nich kończy się pewną konkretną sekwencją dwóch bajtów, więc np najmniejszym problemem będzie przerobienie biblioteki z Greenbooka tak aby zamiast badać na końcu znak ENTER badała ten twój ogranicznik - i wtedy uda ci się to obsłużyć w ASCII - a taki trop miałeś zdaje się.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 17 sie 2020, o 21:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morales]]></name></author>
<updated>2020-08-17T21:10:13+01:00</updated>
<published>2020-08-17T21:10:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228675#p228675</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228675#p228675"/>
<title type="html"><![CDATA[Re: Filtracja otrzymanych danych. UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228675#p228675"><![CDATA[
No właśnie obejrzałem serie poradników do tej biblioteki. Nie ukrywam, że obsługa komunikacji binarnej, to to co potrzebuję. Mam ramki różnej długości, ale wspominał Pan na filmach, że to nie będzie problem <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />. Zastanawiam się jeszcze nad jednym... Czy posiadając bibliotekę z greenbook'a do UART'a oraz książkę ( mam nadzieję, że już jutro <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" />) ciężko będzie samemu stworzyć taką komunikację binarną? Bardzo tego potrzebuję a w czwartek już od Pana kupiłem greenbooka, więc będę musiał poczekać na następny zakup <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" />. <br /><br />Dziękuję za pomoc <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21510">Morales</a> — 17 sie 2020, o 21:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2020-08-17T19:56:35+01:00</updated>
<published>2020-08-17T19:56:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228674#p228674</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228674#p228674"/>
<title type="html"><![CDATA[Re: Filtracja otrzymanych danych. UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228674#p228674"><![CDATA[
<div class="quotetitle">Morales napisał(a):</div><div class="quotecontent"><br />A co w przypadku, kiedy z urządzenia dostaje dane w hex np. : 3F E0 05 CA A8 1A (1A to wartość, która określa koniec ramki).<br /></div><br />W naszym sklepie jest zaawansowana biblioteka Mk MULTI UART w dwóch wersjach i obsługuje komunikację binarną, więc spokojnie .... tego typu ramki będzie lizała jak przysłowiowy pies chudy boczek <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><!-- m --><a class="postlink" href="https://sklep.atnel.pl/pl/p/MK-MULTI-UART-2.0-AVR-Biblioteka-C-/271" >https://sklep.atnel.pl/pl/p/MK-MULTI-UA ... eka-C-/271</a><!-- m --><br /><br /><!-- m --><a class="postlink" href="https://sklep.atnel.pl/pl/p/MK-MULTI-UART-2.0-AT-licencja-MkATcmdGEN-AVR-Biblioteka-C/273" >https://sklep.atnel.pl/pl/p/MK-MULTI-UA ... teka-C/273</a><!-- m --><br /><br />obejrzyj poradniki wideo do tych bibliotek<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 17 sie 2020, o 19:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morales]]></name></author>
<updated>2020-08-17T19:48:29+01:00</updated>
<published>2020-08-17T19:48:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228673#p228673</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228673#p228673"/>
<title type="html"><![CDATA[Re: Filtracja otrzymanych danych. UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228673#p228673"><![CDATA[
Prędkość transmisji to 9600. Jedyny podgląd robiłem za pomocą oscyloskopu. Niestety nie mam analizatora :/. Dodam, że mam profesjonalny sprzęt do odbioru danych z urządzenie na którym mogę zobaczyć w formie hex jaka ramka za co jest odpowiedzialna. Ja robię własną wersję tego urządzenia i właśnie mam problem z parsowaniem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21510">Morales</a> — 17 sie 2020, o 19:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[micky]]></name></author>
<updated>2020-08-17T19:28:58+01:00</updated>
<published>2020-08-17T19:28:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228672#p228672</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228672#p228672"/>
<title type="html"><![CDATA[Re: Filtracja otrzymanych danych. UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228672#p228672"><![CDATA[
To bierz w łapki najprostszy analizator logiczny, na usb (przyda Ci się do wielu innych prac) zgraj nim transmisję i wstaw plik na forum. Jest to o tyle istotne bo taki grab zawiera wiele cennych informacji, prędkość parametry transmisji, odstęp pomiędzy znakami oraz pomiędzy ramkami.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1546">micky</a> — 17 sie 2020, o 19:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morales]]></name></author>
<updated>2020-08-17T19:20:59+01:00</updated>
<published>2020-08-17T19:20:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228671#p228671</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228671#p228671"/>
<title type="html"><![CDATA[Re: Filtracja otrzymanych danych. UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228671#p228671"><![CDATA[
Tak, cały czas na nim pracuję. Jutro rano w pracy będę miał fizyczny dostęp do niego.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21510">Morales</a> — 17 sie 2020, o 19:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[micky]]></name></author>
<updated>2020-08-17T19:03:34+01:00</updated>
<published>2020-08-17T19:03:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228670#p228670</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228670#p228670"/>
<title type="html"><![CDATA[Re: Filtracja otrzymanych danych. UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228670#p228670"><![CDATA[
Masz dostęp do urządzenia?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1546">micky</a> — 17 sie 2020, o 19:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morales]]></name></author>
<updated>2020-08-17T18:00:28+01:00</updated>
<published>2020-08-17T18:00:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228669#p228669</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228669#p228669"/>
<title type="html"><![CDATA[Re: Filtracja otrzymanych danych. UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228669#p228669"><![CDATA[
Hejka, obejrzałem owe filmiki i ruszyłem do przodu z projektem. Aktualnie moim zadaniem jest wykonanie parsowania otrzymanych danych. Greenbooka kupiłem, ale jeszcze nie przyszedł, więc zająłem się rozgryzaniem biblioteki z książki razem z serią filmików o WiFi232. Wszystko wygląda super i zrozumiale, ale owe parsowanie jest skuteczne w momencie, w którym otrzymane dane są zapisane za pomocą ASCII. A co w przypadku, kiedy z urządzenia dostaje dane w hex np. : 3F E0 05 CA A8 1A (1A to wartość, która określa koniec ramki). Ową ramkę nie jestem w stanie przetłumaczyć na kod ASCII. Używałem kalkulatorów hex to ascii i dostawałem taką odpowiedź &quot;?àÊ¨&quot;. Czy mógłbym prosić o pomoc w owej kwestii?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21510">Morales</a> — 17 sie 2020, o 18:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2020-07-30T22:56:21+01:00</updated>
<published>2020-07-30T22:56:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228481#p228481</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228481#p228481"/>
<title type="html"><![CDATA[Re: Filtracja otrzymanych danych. UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228481#p228481"><![CDATA[
wiesz co? już dostałeś kilka podpowiedzi o analizator stanów logicznych a ty wciąż się przed nim bronisz nogami i rękami <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />mówię ci obejrzyj to:<br /><br /><div style="width: 583px; height: 471px; margin: 0 auto; padding-left: 26px; padding-top: 48px; background: url('https://www.atnel.pl/download/atnel_tv.png') no-repeat;"> <strong>iframe</strong> </div><br /><br />i ew to, żeby zobaczyć mały wycinek zastosowań<br /><br /><div style="width: 583px; height: 471px; margin: 0 auto; padding-left: 26px; padding-top: 48px; background: url('https://www.atnel.pl/download/atnel_tv.png') no-repeat;"> <strong>iframe</strong> </div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 30 lip 2020, o 22:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morales]]></name></author>
<updated>2020-07-30T21:15:47+01:00</updated>
<published>2020-07-30T21:15:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228480#p228480</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228480#p228480"/>
<title type="html"><![CDATA[Re: Filtracja otrzymanych danych. UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228480#p228480"><![CDATA[
Hej, chciałem odświeżyć ten temat. Na ten moment udało mi się znaleźć bajty, które sygnalizują koniec ramek. Ku mojemu zdziwieniu ramki wysyłane są w dwóch formatach. Jedna z bajtem końcowym 1A, a druga z 2A. Korzystam z biblioteki Mirka &quot;mkuart&quot; oraz programatora AVR ATB-USB-RS232, więc mam super fajny podgląd na odbierane bajty z bufora cyklicznego UART_RxBuf. Podglądam je w ten sposób:<br /><br /><a href="https://obrazkiforum.atnel.pl/21510/6c07c9ec8f54bbf6943a29e0ab06664c.PNG"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/21510/6c07c9ec8f54bbf6943a29e0ab06664c.PNG" alt="Obrazek" /></a><br /><br />Zauważyłem, że kiedy bufor zapełni się ramkami, to pomimo otrzymania kolejnej ramki, która pojawia się cyklicznie co 2 sekundy, bufor nie zmienia swojej wartości. Jakby te bajty zapisywały się nie wiadomo gdzie. Natomiast bo wykonaniu akcji na urządzeniu typu przekręcenie enkodera, bufor dostaje dużą porcję danych, które już zapisuje po kolei. Nie mam pojęcia z czego to wynika... Myślałem, żeby dodać jakieś czyszczenie się bufora cyklicznego, ale nie umiem tego wykonać. Macie jakiś pomysł? <br /><br />Moim kolejnym zamysłem jest skopiowanie danych z bufora do zupełnie nowej tablicy. Następnie dokonywałbym porównania, jej z inną  stałą zdefiniowaną z kodami hex. Najprawdopodobniej wykorzystam funkcję strcmp() z biblioteki string.h. Przy kopiowaniu  wykorzystuję własną funkcję. Jej głównym problemem jest to, że trochę gubi dane, oraz nie ucina kopiowania w miejscu wystąpienia znaku 1A. Nie mam pomysłu jak to inaczej zrobić. Strcpy() wymaga podania tablicy typu const, które odpadają w tym przypadku, bo obie są dynamiczne. Szukałem coś na necie i wyczytałem o użyciu funkcji typu mem(). Mam jednak małe problemy z zastosowaniem jej - niezbyt to rozumiem <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" />. Czy macie jakiś pomysł jak rozwiązać te przypadki? Z góry dziękuję za każdą odpowiedź i wcześniejsze odpowiedzi. <br /><br />Do kopiowania <br /><a href="https://obrazkiforum.atnel.pl/21510/9eab8595169fab151e81bf32cdcd6154.PNG"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/21510/9eab8595169fab151e81bf32cdcd6154.PNG" alt="Obrazek" /></a><br /><br />Mój głowny kod<br /><a href="https://obrazkiforum.atnel.pl/21510/1aa49e72954a372938d5dba2df31173c.PNG"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/21510/1aa49e72954a372938d5dba2df31173c.PNG" alt="Obrazek" /></a><br /><br />Setup<br /><a href="https://obrazkiforum.atnel.pl/21510/a79b65bd85a44c5c44a9d668d7f7f9f8.PNG"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/21510/a79b65bd85a44c5c44a9d668d7f7f9f8.PNG" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21510">Morales</a> — 30 lip 2020, o 21:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[micky]]></name></author>
<updated>2020-07-23T13:40:19+01:00</updated>
<published>2020-07-23T13:40:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228392#p228392</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228392#p228392"/>
<title type="html"><![CDATA[Re: Filtracja otrzymanych danych. UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228392#p228392"><![CDATA[
Zgraj to porządnie jak człowiek z 30 sekund logic analyzerem (nawet najprostszym). Można wtedy coś więcej powiedzieć. A tak to działanie po omacku.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1546">micky</a> — 23 lip 2020, o 13:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[JarekB]]></name></author>
<updated>2020-07-23T08:28:46+01:00</updated>
<published>2020-07-23T08:28:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228386#p228386</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228386#p228386"/>
<title type="html"><![CDATA[Re: Filtracja otrzymanych danych. UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228386#p228386"><![CDATA[
Cześć.<br /> Mam wrażenie że zaczynasz rozwiązywać problem &quot;od środka&quot;. <br />Zobacz że nie wiesz jaki jest format danych.  <br />A co będzie gdy nie ma &quot;końca ramki&quot;  w formie jakiegoś bajtu. <br />Taki przypadek przecież może nastąpić. <br />Końcem ramki może być czas ciszy na magistrali.<br />Narobisz się jak koń, a okaże się że to wszystko nie działa bo rzeczywistość jest zupełnie inna.<br />Spróbuj jak koledzy wcześniej sugerowali przeczytać co tak naprawdę lata na linii RX.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18188">JarekB</a> — 23 lip 2020, o 08:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morales]]></name></author>
<updated>2020-07-22T20:57:34+01:00</updated>
<published>2020-07-22T20:57:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228383#p228383</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228383#p228383"/>
<title type="html"><![CDATA[Re: Filtracja otrzymanych danych. UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228383#p228383"><![CDATA[
Jedyne co udało mi się znaleźć na komputerze na ten moment, to zdjęcie z oscyloskopu. <br /><br /><a href="https://obrazkiforum.atnel.pl/21510/d18b1213a435732060059590d31a2ffd.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/21510/d18b1213a435732060059590d31a2ffd.jpg" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21510">Morales</a> — 22 lip 2020, o 20:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[micky]]></name></author>
<updated>2020-07-22T20:51:03+01:00</updated>
<published>2020-07-22T20:51:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228382#p228382</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228382#p228382"/>
<title type="html"><![CDATA[Re: Filtracja otrzymanych danych. UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228382#p228382"><![CDATA[
Na początek to wstaw kilka przykładowych ramek.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1546">micky</a> — 22 lip 2020, o 20:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morales]]></name></author>
<updated>2020-07-22T20:15:51+01:00</updated>
<published>2020-07-22T20:15:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228380#p228380</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228380#p228380"/>
<title type="html"><![CDATA[Re: Filtracja otrzymanych danych. UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228380#p228380"><![CDATA[
A czy moje rozumowanie jest dobre? Zastanawiam się, czy dalej w to brnąć czy nie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21510">Morales</a> — 22 lip 2020, o 20:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jez2000]]></name></author>
<updated>2020-07-22T20:14:21+01:00</updated>
<published>2020-07-22T20:14:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228379#p228379</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228379#p228379"/>
<title type="html"><![CDATA[Re: Filtracja otrzymanych danych. UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228379#p228379"><![CDATA[
Fajnie by bylo  jakbyś wiedział jak zakończone są te ramki. Moze najpierw podlacz sie przejściówka do PC i zobacz co wysyla. Albo wepnij się nią w rx uc.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11828">jez2000</a> — 22 lip 2020, o 20:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morales]]></name></author>
<updated>2020-07-22T18:47:57+01:00</updated>
<published>2020-07-22T18:47:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228378#p228378</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228378#p228378"/>
<title type="html"><![CDATA[Filtracja otrzymanych danych. UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23259&amp;p=228378#p228378"><![CDATA[
Witam, zwracam się do was drodzy forumowicze o pomoc. <br /><br />Jestem w trakcie pisania pracy inżynierskiej. W skrócie muszę odebrać dane z urządzenia &quot;A&quot;, przefiltrować je i następnie wyświetlić gotowe nazwy, które będą bazowały właśnie na odebranych informacjach. Urządzenie korzysta z bardzo dziwnej magistrali bo jest z branży AGD. Z tego co zauważyłem jest to połączenie CAN'a, one wire i uart'a.  Ogólnie na wyjściu urządzenia wykorzystywane są RX i TX. Struktura ramki podstawowa - 8n1. Mikrokontroler jaki wykorzystuje to ATmega8.  Jako posiadacz bluebooka wspieram się książką w pisaniu programu.<br /><br />Niestety mam problem z filtracją otrzymanych ramek :/. Do obsługi UART'u wykorzystuję program oparty na buforach cyklicznych (z bluebook'a). Ogólnie mój pomysł na przefiltrowanie danych jest następujący: <br /><br />- Wykorzystując funkcje uart_getc w loopie pobieram sobie jeden bajt z bufora cyklicznego UART_RxBuf<br />- Następnie w ifie sprawdzam czy pobrany bajt, to koniec ramki danych (tutaj mam problem, ponieważ nie mam pojęcia w jaki sposób kończy się ramka. Chodzi mi o to, ze nie znam jej fizycznej wartości, po której mógłbym &quot;uciąć&quot; daną ramkę, więc nie sugerujcie się wartością 0xFF). Postanowiłem to zrobić na takiej samej zasadzie, jak jest opisana w bluebooka w temacie o tablicach znakowych. Czy istnieje jakiś sposób na znalezienie fizycznej wartości ? Sprawdzałem dokumentację, jednak tam nic nie znalazłem ;/<br />- Po wykryciu końca ramki, chcę użyć funkcji strCopy(), która ma za zadanie przepisanie wartości bufora Rx do nowej tabilcy. Żeby ta funkcja mi zadziałała, to tablicę do której przepisuję dane, musiałem dać również jako volatille. W tym przypadku również wykorzystałem wiedzę z tematu o tablicach znakowych<br /> [syntax=c]void strCopy(volatile char przeznaczenie&#91;&#93;, volatile char zrodlo&#91;&#93; ) {<br />    uint8_t i = 0;     <br />    do {<br />        przeznaczenie&#91;i&#93; = zrodlo&#91;i&#93;;          <br />    } while ( zrodlo&#91;i++&#93; ) ;           <br />}[/syntax]<br /><br />- Następnie, chce wyświetlić odebraną ramkę (już uciętą po znaku kończącym ją)  na LCD. Pomyślałem, ze warto byłoby wykorzystać funkcję lcd_hex(), jednak wykorzystuje ona itoa, więc potrzebuję tablicy typu int (chyba, że się mylę) a moja tablica, ta do której kupuję zawartość bufora cyklicznego RX jest typu volatille char, bo inaczej nie zadziała mi funkcja kopiująca. Pewnie musze jakoś ją zmienić właśnie na int, jednak nie wiem jak to zrobić. <br /><br />Tutaj wrzucam kod z mojego main.c <br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;stdlib.h&gt;<br />#include &quot;LCD.h&quot;<br />#include &quot;mkuart.h&quot;<br /><br /><br /><br /><br />int main( void ) {                     <br /><br />    USART_Init( 9600 );<br />    lcd_init();<br />    lcd_cursor_on();<br />    DDRD |= 0b00000010;<br />    sei();<br /><br />    while ( 1 ) { <br />        int data = uart_getc();                        <br />        lcd_str( &quot;Odczytano :&quot; );                                                                        <br />        lcd_locate( 1, 0 );                                <br />                                                                                      <br />        if ( data == 0xFF) {   // 0xFF jest wartością przykładową<br />            strCopy( test, UART_RxBuf );<br />           PORTD |= 0b00000010;     <br />            lcd_hex(data); // nie działa<br />        }  <br />        <br />        _delay_ms( 100 );<br />        lcd_str( &quot;                &quot; );<br />    }                                                                     <br /><br />}[/syntax]<br /><br />Dodatkowo wrzucam schemat układu, którym odbieram dane prosto do atmegi. (Schemat jest nie zaktualizowany, ponieważ sygnał nie trafia do Arduino, a do czystej ATmegi. Wcześniej właśnie próbowałem to zrobić na arduino, ale zrezygnowałem bo czyste C lepsze <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />. <br /><br /><a href="https://obrazkiforum.atnel.pl/21510/65f1fac23242eb6359e220f9b9ca99a5.PNG"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/21510/65f1fac23242eb6359e220f9b9ca99a5.PNG" alt="Obrazek" /></a><br /><br />Czy opisane przeze mnie rozumowanie jest poprawne? Inaczej nie mam pomysłu jak to rozwiązać, pomijając fakt, że to aktualnie zaproponowane przeze mnie mi nie działa. Macie jakiś pomysł jak to zrobić? Może własne rozwiązania odbioru takich danych?  Myślę, ze małe nakierowanie mnie dużo pomoże w tym temacie.  <br />Liczę na waszą pomoc! <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21510">Morales</a> — 22 lip 2020, o 18:47</p><hr />
]]></content>
</entry>
</feed>