<?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=20390&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2018-03-12T01:31:40+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=20390&amp;mode</id>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2018-03-12T01:31:40+01:00</updated>
<published>2018-03-12T01:31:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20390&amp;p=205431#p205431</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20390&amp;p=205431#p205431"/>
<title type="html"><![CDATA[Re: Sprawdzenie poprawności sumy CRC - UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20390&amp;p=205431#p205431"><![CDATA[
Jako wywołany do tablicy odpowiem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><div class="quotetitle">faber33 napisał(a):</div><div class="quotecontent"><br />1234 <br />CRC-16 wynosi 14BA<br /><br />I teraz co &quot;sklejamy&quot; razem 1234 i 14BA i ma wyjść 0 ? Jak tak zrobię to wychodzi: BEDA<br /></div><br />Tylko chyba sklejasz ciąg 1234 będący znakami ASCII z wynikiem będącym zapisem hexa 0x14BA ...<br /><br />Ciąg ASCII 1234 to w zapisie hexadecymalnym 0x31 0x32 0x33 0x34, więc jak policzymy dla tego ciągu z dodanym wynikiem CRC-16 (0x14BA) to mamy wynik 0x0000 (ważna jest odpowiednia kolejność bajtów dodawanego CRC-16 - little endian). A tak wygląda na podawanej przez Ciebie stronie:<br /><a href="https://obrazkiforum.atnel.pl/3427/730b0dda5477e38a81461d305fc288a0.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/3427/730b0dda5477e38a81461d305fc288a0.png" alt="Obrazek" /></a> <a href="https://obrazkiforum.atnel.pl/3427/ac92a9f294d241f63761edea699c28c2.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/3427/ac92a9f294d241f63761edea699c28c2.png" alt="Obrazek" /></a><br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 12 mar 2018, o 01:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[faber33]]></name></author>
<updated>2018-03-12T00:37:17+01:00</updated>
<published>2018-03-12T00:37:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20390&amp;p=205429#p205429</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20390&amp;p=205429#p205429"/>
<title type="html"><![CDATA[Re: Sprawdzenie poprawności sumy CRC - UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20390&amp;p=205429#p205429"><![CDATA[
Dzięki za odpowiedź, o tym pierwszym sposobie wspominał kolega rskup  wktórymś z postów na forum ... ale coś mi to nie pasuje ... powiedzmy np. <br /><br />Wpisałem sobie do kalkulatora:<br /><!-- m --><a class="postlink" href="https://www.lammertbies.nl/comm/info/crc-calculation.html" >https://www.lammertbies.nl/comm/info/cr ... ation.html</a><!-- m --><br /><br />1234 <br />CRC-16 wynosi 14BA<br /><br />I teraz co &quot;sklejamy&quot; razem 1234 i 14BA i ma wyjść 0 ? Jak tak zrobię to wychodzi: BEDA<br /><br />Drugim sposobem udało mi się w ten sposób to zrobić:<br />[syntax=c]void parse_rs232( char * abuf ){<br />char * cmd_wsk;<br />char * reszta;<br />uint16_t crc=0;<br /><br />//jeśli przyszła komenda zawierająca dwukropek<br />if(strpbrk(abuf, &quot;:&quot;)){<br />cmd_wsk = strtok_r(abuf,&quot;:&quot;, &amp;reszta);<br /><br />for(uint8_t i=0; i&lt;strlen(cmd_wsk);i++){<br />crc = _crc16_update(crc,cmd_wsk&#91;i&#93;);<br />}<br /><br />if(crc== atoi(reszta)){<br />                    //jeśli jest poprawne CRC to odczytujemy dane<br />                }<br />     }<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=976">faber33</a> — 12 mar 2018, o 00:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[abel11]]></name></author>
<updated>2018-03-11T21:54:37+01:00</updated>
<published>2018-03-11T21:54:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20390&amp;p=205421#p205421</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20390&amp;p=205421#p205421"/>
<title type="html"><![CDATA[Re: Sprawdzenie poprawności sumy CRC - UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20390&amp;p=205421#p205421"><![CDATA[
Znane mi są dwie metody:<br />1) Po odebraniu ramki danych (z CRC) obliczasz sumę CRC całej ramki (łącznie z CRC) i tu wyznaczone CRC powinno wynosić 0.<br />2) Obliczasz CRC odebranej ramki danych (bez CRC) i wyznaczone CRC powinno się zgadzać z tym wysłanym w ramce.<br /><br />Swoją drogą widziałem bardzo dobrze napisany artykuł właśnie odnośnie CRC, może warto poszukać na forum.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17861">abel11</a> — 11 mar 2018, o 21:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[faber33]]></name></author>
<updated>2018-03-11T20:47:54+01:00</updated>
<published>2018-03-11T20:47:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20390&amp;p=205416#p205416</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20390&amp;p=205416#p205416"/>
<title type="html"><![CDATA[Sprawdzenie poprawności sumy CRC - UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20390&amp;p=205416#p205416"><![CDATA[
Witam. Mam takie problem: Chciałbym dodać do UARTu sumę CRC16 w celu wiadomym czyli sprawdzenia czy dotrzymane dane są poprawne. Do wysyłanej ramki dodałem tą sumę CRC16 czyli: mojedane:CRC (dwukropek dałem w celu oddzielania danych od sumy - nadmiarowo zapewne). I teraz proszę o poradę jak w paserze danych z UARTu sprawdzić czy suma CRC jest poprawna ? Dodam że używam funkcji _crc16_update z biblioteki &lt;util/crc16.h&gt;<br /><br />[syntax=c]void parse_rs232( char * abuf ){<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=976">faber33</a> — 11 mar 2018, o 20:47</p><hr />
]]></content>
</entry>
</feed>