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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-10-09T22:32:35+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=4426&amp;mode</id>
<entry>
<author><name><![CDATA[danny]]></name></author>
<updated>2013-10-09T22:32:35+01:00</updated>
<published>2013-10-09T22:32:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4426&amp;p=52409#p52409</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4426&amp;p=52409#p52409"/>
<title type="html"><![CDATA[Re: operatory bitowe]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4426&amp;p=52409#p52409"><![CDATA[
Faktycznie, w książce są stosowane przesunięcia. Teraz  problem wydaje się trywialny. Niestety komplikowałem sobie życie złymi przyzwyczajeniami z _BV. Dziękuję za pomoc, teraz będę używał tylko przesunięć bitowych. <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=1505">danny</a> — 9 paź 2013, o 22:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-10-09T21:28:44+01:00</updated>
<published>2013-10-09T21:28:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4426&amp;p=52397#p52397</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4426&amp;p=52397#p52397"/>
<title type="html"><![CDATA[Re: operatory bitowe]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4426&amp;p=52397#p52397"><![CDATA[
<div class="quotetitle">danny napisał(a):</div><div class="quotecontent"><br />Skoro powiedzzmy _BV()) oznacza (1&lt;&lt;0), _BV(1) (1&lt;&lt;1), to w pętli if: (zmienna jest typu uint8_t)<br /></div><br /><br />No widzisz już na samym początku sam wprowadzasz się w stan złej hipnozy używając kocich operatorów _BV zamiast normalnych przesunięć bitowych. Z tym to jest jak z reklamą margaryny, która ponoć jest tak dobra jak masło. A skoro tak to po co męczyć się margaryną ?<br /><br />Po co męczyć się kocim _BV()<br /><br />zobaczysz, że jak przejdziesz na (1&lt;&lt;x) to od razu będzie po pierwsze jaśniej - piszę o tym sporo w bluebooku przecież.<br /><br /><!-- m --><a class="postlink" href="http://atnel.pl/mikrokontrolery-avr-jezyk-c.html" >http://atnel.pl/mikrokontrolery-avr-jezyk-c.html</a><!-- m --><br /><br /><div class="quotetitle">danny napisał(a):</div><div class="quotecontent"><br />Natomiast nie potrafię zatrybić czegos takiego:<br /></div><br /><br />to przetłumaczmy to sobie najpierw na ludzki język: <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />[syntax=c]if( (zmienna &amp; (1&lt;&lt;0)|(1&lt;&lt;1)) ) == ((1&lt;&lt;0)|(1&lt;&lt;1)) )[/syntax]<br /><br />czyli<br /><br />[syntax=c]if ( (zmienna &amp; 3) == 3 )[/syntax]<br /><br />no bo przecież<br /><br />najmniejsze wyrażenie jakim jest np niewątpliwie:<br /><br /><strong><span style="color: #0040FF">1&lt;&lt;0</span></strong> oznacza co ? sam wiesz jest =1<br /><strong><span style="color: #0040FF">1&lt;&lt;1</span></strong> oznacza co ? sam wiesz jest =2<br /><br />natomiast<br /><br /><strong><span style="color: #0040FF">1 | 2 = 3</span></strong><br /><br />bo<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />0b0000000<span style="color: #0040FF"><strong>1</strong></span><br />0b000000<span style="color: #0040FF"><strong>1</strong></span>0  OR<br />------------<br />0b000000<span style="color: #0040FF"><strong>11</strong></span> (3)<br /></div><br /><br />teraz jaśniej ? <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> — 9 paź 2013, o 21:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[danny]]></name></author>
<updated>2013-10-09T20:09:34+01:00</updated>
<published>2013-10-09T20:09:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4426&amp;p=52388#p52388</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4426&amp;p=52388#p52388"/>
<title type="html"><![CDATA[operatory bitowe]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4426&amp;p=52388#p52388"><![CDATA[
Witam<br /><br />Mam dziś jakiś totalny problem ze zrozumieniem prostego kodu. Prosiłbym o pomoc bo mój tok rozumowania zawodzi. Mianowicie<br /><br />Skoro powiedzzmy _BV()) oznacza (1&lt;&lt;0), _BV(1)  (1&lt;&lt;1), to w pętli if: (zmienna jest typu uint8_t)<br /><br />[syntax=c]if( zmienna &amp; _BV(0) ) { kod }[/syntax]  Pętla if (jej zawartość) wykona się jeśli zerowy bit zmiennej jest 1 (np. 0b0000 0001).<br /><br />[syntax=c]if( zmienna &amp; (_BV(0) | _BV(1)) ) { kod }[/syntax]  Warunek prawdziwy dla zerowego lub 1 bitu &quot;zmienna&quot;równego 1.<br /><br />Natomiast nie potrafię zatrybić czegos takiego:<br /><br />[syntax=c]if( (zmienna &amp; (_BV(0)|_BV(1)) ) == (_BV(0)|_BV(1)) )[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1505">danny</a> — 9 paź 2013, o 20:09</p><hr />
]]></content>
</entry>
</feed>