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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-02-28T11:01:51+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=61&amp;t=10840&amp;mode</id>
<entry>
<author><name><![CDATA[karl]]></name></author>
<updated>2015-02-28T11:01:51+01:00</updated>
<published>2015-02-28T11:01:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10840&amp;p=121301#p121301</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10840&amp;p=121301#p121301"/>
<title type="html"><![CDATA[Re: Nadajnik RFM12 firmy HOPERF]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10840&amp;p=121301#p121301"><![CDATA[
Cześć<br />Mam małe pytanie odnośnie kodu<br /><br />[syntax=c]uint8_t rf12_rxdata( char *data ) {<br />uint8_t i, number;<br />uint16_t crc, crc_chk;<br /><br />rf12_trans(0x82C8);// RX on<br /><br />// fifo reset<br />rf12_trans(0xCA81);// disable FIFO mode<br />rf12_trans(0xCA83);// enable FIFO mode<br /><br />rf12_ready();<br />number = rf12_trans(0xB000) &amp; 0x00FF;<br />crc_chk = crcUpdate(0, number);<br /><br />for (i=0; i&lt;number; i++) {<br />rf12_ready();<br />data&#91;i&#93; = ( char) (rf12_trans(0xB000) &amp; 0x00FF);<br />crc_chk = crcUpdate(crc_chk, data&#91;i&#93;);<br />}<br /><br />rf12_ready();<br />crc = rf12_trans(0xB000) &amp; 0x00FF;<br />rf12_ready();<br />crc |=  rf12_trans(0xB000) &lt;&lt; 8;<br /><br />rf12_trans(0x8208);// RX off<br /><br />if (crc != crc_chk){<br />number = 0;<br />data&#91;0&#93;=0;<br />}<br /><br />data&#91;number&#93;=0;<br />return number;[/syntax]<br /><br />Takie polecenie number = rf12_trans(0xB000) &amp; 0x00FF; czy ono odczytuje wartość z rejestru odbiornika gdzie znajduje się rozmiar bajtów????????????<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8685">karl</a> — 28 lut 2015, o 11:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-02-27T18:12:39+01:00</updated>
<published>2015-02-27T18:12:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10840&amp;p=121231#p121231</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10840&amp;p=121231#p121231"/>
<title type="html"><![CDATA[Re: Nadajnik RFM12 firmy HOPERF]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10840&amp;p=121231#p121231"><![CDATA[
ok rozumiem - dlatego tylko zwróciłem uwagę na przyszłość <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 27 lut 2015, o 18:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[karl]]></name></author>
<updated>2015-02-27T18:01:40+01:00</updated>
<published>2015-02-27T18:01:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10840&amp;p=121227#p121227</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10840&amp;p=121227#p121227"/>
<title type="html"><![CDATA[Re: Nadajnik RFM12 firmy HOPERF]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10840&amp;p=121227#p121227"><![CDATA[
Sory mirku ale jestem tu nowy.<br />J chyba coś mi się pomyliło.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8685">karl</a> — 27 lut 2015, o 18:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-02-27T16:28:59+01:00</updated>
<published>2015-02-27T16:28:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10840&amp;p=121215#p121215</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10840&amp;p=121215#p121215"/>
<title type="html"><![CDATA[Re: Nadajnik RFM12 firmy HOPERF]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10840&amp;p=121215#p121215"><![CDATA[
<span style="color: #FF0000">dlaczego tworzysz dwa wątki o takim samym tytule w jednym dziale ? proszę cię nie rób tego więcej</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 27 lut 2015, o 16:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[karl]]></name></author>
<updated>2015-02-27T14:57:18+01:00</updated>
<published>2015-02-27T14:57:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10840&amp;p=121190#p121190</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10840&amp;p=121190#p121190"/>
<title type="html"><![CDATA[Re: Nadajnik RFM12 firmy HOPERF]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10840&amp;p=121190#p121190"><![CDATA[
Dzięki za szybką odpowiedz.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8685">karl</a> — 27 lut 2015, o 14:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-02-27T13:34:42+01:00</updated>
<published>2015-02-27T13:34:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10840&amp;p=121170#p121170</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10840&amp;p=121170#p121170"/>
<title type="html"><![CDATA[Re: Nadajnik RFM12 firmy HOPERF]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10840&amp;p=121170#p121170"><![CDATA[
A na naszym forum jest kilka poradników na ten temat (CRC), proszę:<br /><br /><!-- l --><a class="postlink-local" href="http://forum.atnel.pl/post42077.html#p42077" >post42077.html#p42077</a><!-- l --><br /><br />proszę<br /><br /><!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic3836.html" >topic3836.html</a><!-- l --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 27 lut 2015, o 13:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[karl]]></name></author>
<updated>2015-02-27T13:22:39+01:00</updated>
<published>2015-02-27T13:22:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10840&amp;p=121169#p121169</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10840&amp;p=121169#p121169"/>
<title type="html"><![CDATA[Nadajnik RFM12 firmy HOPERF]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10840&amp;p=121169#p121169"><![CDATA[
Cześć mam pytanie odnośnie tego kodu z zielonej książki.<br /><br />[syntax=c]void rf12_txdata(char *data, uint8_t size) {<br />uint8_t i;<br />uint16_t crc;<br /><br />rf12_trans(0x8238);// TX on<br /><br />if( !size ) size = (strlen(data));<br /><br />rf12_ready();<br />rf12_trans(0xB8AA);// bajty preambuły 2x 0xAA<br />rf12_ready();<br />rf12_trans(0xB8AA);<br />rf12_ready();<br />rf12_trans(0xB8AA);<br />rf12_ready();<br />rf12_trans(0xB82D);// dwa bajty synchronizacyjne 0x2D i 0xD4<br />rf12_ready();<br />rf12_trans(0xB8D4);<br />rf12_ready();<br />rf12_trans(0xB800 | size);<br />crc = crcUpdate(0, size);<br />for (i=0; i&lt;size; i++) {<br />rf12_ready();<br />rf12_trans(0xB800 | data&#91;i&#93;);<br />crc = crcUpdate(crc, data&#91;i&#93;);<br />}<br />rf12_ready();<br />rf12_trans(0xB800 | (crc &amp; 0x00FF));<br />rf12_ready();<br />rf12_trans(0xB800 | (crc &gt;&gt; 8));<br />rf12_ready();<br />rf12_trans(0xB8AA);<br />rf12_ready();<br />rf12_trans(0xB8AA);<br />rf12_ready();<br /><br />rf12_trans(0x8208);// TX off<br />}[/syntax]<br />1.Po kolei sprawdzamy czy moduł nic nie nadaje i jeśli nic to wysyłamy preambułę i bity synchronizacyjne.<br />2.W pętli wysyłamy bajty danych a jednocześnie wywołujemy funkcję odpowiedzialną za sumę kontrolną.<br /><br /><br />Czy może ona wysyła zakodowaną wartość bajtu czyli np.bit określający długość będzie równy 1 to będzie wykonana taka operacja<br />0b0000000000000001<br />0b0000000000000000<br /><br />Wykona się odejmowanie i ten drugi warunek będzie wykonywany czyli będzie przesuwał crc o jeden tylko w ostatnim wykona się pierwszy i przesuniemy crc o jeden i odejmiemy od wyniku 0x1021<br />|0000|0000|0000|0000|<br />|0001|0000|0010|0001|<br /><br />|0001|0000|0010|0001|<br />Potem to co otrzymaliśmy znowu zostanie przekazane do funkcji jako crc i nasz bajt jako serialData.Potem wynik tej funkcji znowu przekażemy do funkcji przekazując kolejny bajt i tak dalej.Czy dobrze czaje jak działa ta suma kontrolna czy nie??????????<br /><br />A tu kod sumy kontrolnej crc<br />[syntax=c]/*! Obliczanie sumy kontrolnej CRC16 */<br />uint16_t crcUpdate(uint16_t crc, uint8_t serialData) {<br />uint16_t tmp;<br />uint8_t j;<br /><br />tmp = serialData &lt;&lt; 8;<br />        for (j=0; j&lt;8; j++){<br />            if((crc^tmp) &amp; 0x8000) crc = (crc&lt;&lt;1) ^ 0x1021;<br />            else crc = crc &lt;&lt; 1;<br />            tmp = tmp &lt;&lt; 1;<br />        }<br />return crc;<br />}[/syntax]<br /><br />O co chodzi z tą operacją 0xB800 | data[i] Po co jest to 0xB800????????Czy nie można przekazać  data[i] i tyle po co ta wartość.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8685">karl</a> — 27 lut 2015, o 13:22</p><hr />
]]></content>
</entry>
</feed>