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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-04-13T16:24:09+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=6718&amp;mode</id>
<entry>
<author><name><![CDATA[Zaba]]></name></author>
<updated>2014-04-13T16:24:09+01:00</updated>
<published>2014-04-13T16:24:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6718&amp;p=77874#p77874</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6718&amp;p=77874#p77874"/>
<title type="html"><![CDATA[Re: I2C funkcja putbyte]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6718&amp;p=77874#p77874"><![CDATA[
Zajrzyj sobie na blog Mirka do poradnika o liczbach<br /><br /><a href="http://www.mirekk36.blogspot.com/2014/03/liczby-szesnastkowe-hexadecymalne.html"  class="postlink">http://www.mirekk36.blogspot.com/2014/03/liczby-szesnastkowe-hexadecymalne.html</a><br /><br />bardzo pomocny sposób na różnego rodzaju przeliczanie systemów liczbowych<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1044">Zaba</a> — 13 kwi 2014, o 16:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[pbn]]></name></author>
<updated>2014-04-13T14:50:52+01:00</updated>
<published>2014-04-13T14:50:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6718&amp;p=77865#p77865</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6718&amp;p=77865#p77865"/>
<title type="html"><![CDATA[Re: I2C funkcja putbyte]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6718&amp;p=77865#p77865"><![CDATA[
Dziękuje! Cały mój błąd polegał na tym, że myślałem ze 0x80 to 0b01111111;)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3247">pbn</a> — 13 kwi 2014, o 14:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zaba]]></name></author>
<updated>2014-04-12T17:23:56+01:00</updated>
<published>2014-04-12T17:23:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6718&amp;p=77763#p77763</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6718&amp;p=77763#p77763"/>
<title type="html"><![CDATA[Re: I2C funkcja putbyte]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6718&amp;p=77763#p77763"><![CDATA[
To jest funkcja do wysyłania przez I2C ale nie sprzętowo tylko programowo<br /><br />Tak w if-ie jest maskowany bit danej do wysyłki i tak<br />w pierwszym przebiegu pętli &quot;do...while&quot; maska ma wartość 0x80 czyli binarnie 0b10000000<br />i porównywany jest &quot;(b &amp; i)&quot; najstarszy bit danej &quot;b&quot; <br />i jeśli jeśli jest jeden (czyli prawda) to wysyła (ustawia pin uC w stan wysoki) <br />a jeśli zero to w stan niski (makro I2C_SDL_HI i I2C_SDL_LO)<br />następnie kiedy dojdzie do &quot;while&quot; jest przesunięcie w lewo o 1 i &quot;i&quot; ma wartość 0b01000000<br /><br />W następnym przebiegu pętli już porównywany jest bit nr. 6 (bity od 7..0)<br />i tak aż nie wyjdzie jedynka z bajtu &quot;i&quot; czyli osiem przebiegów.<br /><br />mam nadzieję że nic nie poplątałem i napisałem zrozumiale <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br />A i jeszcze jedna uwaga wstawiaj kod w znacznikach [syntax=c]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1044">Zaba</a> — 12 kwi 2014, o 17:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[pbn]]></name></author>
<updated>2014-04-11T21:52:17+01:00</updated>
<published>2014-04-11T21:52:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6718&amp;p=77704#p77704</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6718&amp;p=77704#p77704"/>
<title type="html"><![CDATA[Re: I2C funkcja putbyte]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6718&amp;p=77704#p77704"><![CDATA[
To jest funkcja do wysyłania bajtu przez I2C, wstawiam całą.<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">u08 i2cPutbyte(u08 b) {<br />   u08 i=0x80;<br /><br />   do {<br />      if ( b &amp; i ) I2C_SDL_HI;<br />      else I2C_SDL_LO;<br /><br />      I2C_SCL_TOGGLE;<br />   } while ( i &gt;&gt;= 1 );      // wysyłanie bajtu<br /><br />   I2C_SDL_HI;         // pozostawienie SDA w stanie wysokim<br /><br />   DDR(SDAPORT) &amp;= ~(1&lt;&lt;SDA);<br />   HDEL;<br />   I2C_SCL_HI;<br />   b = PIN(SDAPORT) &amp; (1&lt;&lt;SDA);   // sprawdzenie bitu ACK<br /><br />   HDEL;<br />   I2C_SCL_LO;<br />   DDR(SDAPORT) |= (1&lt;&lt;SDA);<br />   HDEL;<br />   return (b == 0);   //zwrócenie ACK jako rezultatu funkcji<br />}<br /></div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3247">pbn</a> — 11 kwi 2014, o 21:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zaba]]></name></author>
<updated>2014-04-11T19:42:41+01:00</updated>
<published>2014-04-11T19:42:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6718&amp;p=77691#p77691</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6718&amp;p=77691#p77691"/>
<title type="html"><![CDATA[Re: I2C funkcja putbyte]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6718&amp;p=77691#p77691"><![CDATA[
Jakie mają wartości i do czego są używane zmienne &quot;byte&quot; oraz &quot;i&quot; przed pętlą  &quot;do ... while&quot;<br /><br />Po tym fragmencie kodu mogę tylko przypuszczać że chodzi <br />o maskowanie w celu użycia odpowiedniej funkcji do przesyłu <br />młodszej i starsze połówki bajtu , ale pewności nie mam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1044">Zaba</a> — 11 kwi 2014, o 19:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[pbn]]></name></author>
<updated>2014-04-11T12:51:54+01:00</updated>
<published>2014-04-11T12:51:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6718&amp;p=77654#p77654</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6718&amp;p=77654#p77654"/>
<title type="html"><![CDATA[I2C funkcja putbyte]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6718&amp;p=77654#p77654"><![CDATA[
Witam,<br />czy mógłby mi ktoś wytłumaczyć działanie poniższego kodu w tytułowej funkcji bo nie rozumiem, kiedy ten if daje 1 a kiedy 0 bo moim zdaniem to powinno działać tak że gdy robimy iloczyn logiczny naszego bajtu z 0xF0  to wtedy gdy napotykamy jedynke to jest i2c_sdl_high a gdy zero jest i2c_sdl_low, a z tego jak tu sobie rozpisuje na kartce to sie nie pokrywa z tym jak wygląda ten bajt, a wiec pytanie brzmi kiedy ten if zwraca 1 a kiedy 0, bo według mnie zwraca 0 gdy tylko gdy cały bajt z iloczynu logicznego jest rowny zero a w kazdym innym przypadku jest 1, wyglada na to ze musze sie mylić, no wiec jak to działa?<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">   do<br />   {<br />      if(byte &amp; i) i2c_sda_high;<br />      else i2c_sda_low;<br />      i2c_scl_toggle;<br />   } while (i&gt;&gt;=1);<br /></div><br /><br />(edit) sdl tam powinno być oczywiście, w sumie to zadna roznica, ale zeby sie pokrywalo z tym co napisalem<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 18 minutach ]</span></strong><br /><br />Z tego co sobie tutaj rozpisałem to wynika że brany jest pod uwage po przesuwaniu bitowym w prawo tylko pierwsza jedynka od lewej z tego bajtu oznaczonego jak 'i' i porownana jest z tą samą pozycją w bajcie byte i na podstawie tego steruje sie ifem, to prawda?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3247">pbn</a> — 11 kwi 2014, o 12:51</p><hr />
]]></content>
</entry>
</feed>