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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-04-09T13:44:06+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=2822&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-04-09T13:44:06+01:00</updated>
<published>2013-04-09T13:44:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2822&amp;p=33928#p33928</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2822&amp;p=33928#p33928"/>
<title type="html"><![CDATA[Re: Kod RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2822&amp;p=33928#p33928"><![CDATA[
Nie ma za co - sam czasem tak mam że zatnę się na prostej rzeczy i wtedy stoję w miejscu <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ... dokładnie chyba coś ci ten wykrzyknik przestawił w głowie bo kojarzyłeś go z jakąś negacją <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 kwi 2013, o 13:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Tom277]]></name></author>
<updated>2013-04-09T13:39:13+01:00</updated>
<published>2013-04-09T13:39:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2822&amp;p=33927#p33927</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2822&amp;p=33927#p33927"/>
<title type="html"><![CDATA[Re: Kod RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2822&amp;p=33927#p33927"><![CDATA[
Kurczę jak się człowiek na coś uprze to sam się z tego nie wyprowadzi. Źle interpretowałem to:<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">if( (keys &amp; KEYS_MASK) != KEYS_MASK ) </div><br />wymyśliłem sobie że warunkiem jest <br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">(keys &amp; KEYS_MASK)</div><br />i jeśli jest spełniony to<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">!= KEYS_MASK</div><br />ma się zanegować.<br />Jakoś nie widziałem że jest to otoczone nawiasami a nie klamrami. <br />Jak sobie człowiek coś wbije do głowy to bez młotka wybić się nie da. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br />Musze to sobie jeszcze &quot;przewinąć&quot; od początku i przećwiczyć na żywym organizmie (procesorze)<br />Bardzo dziękuję za tak szczegółowe wyjaśnienia.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=548">Tom277</a> — 9 kwi 2013, o 13:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-04-09T12:51:12+01:00</updated>
<published>2013-04-09T12:51:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2822&amp;p=33920#p33920</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2822&amp;p=33920#p33920"/>
<title type="html"><![CDATA[Re: Kod RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2822&amp;p=33920#p33920"><![CDATA[
bez śmiania - ja sam teraz zacząłem &quot;przez ciebie sobie rozpisywać to na operacje bitowe&quot; i zbaraniałem, pod tytułem &quot;co ja tam wymyśliłem? chyba coś rzeczywiście pokrębasiłem&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ale jednak nie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> it's working<br /><br />może spójrz na warunek pętli <br /><br />[syntax=c]do {<br /><br />while ( (keys &amp; KEYS_MASK) != KEYS_MASK );[/syntax]<br /><br />i rozpatrzmy do kiedy ona będzie się wykonywać - a powinna się dotąd wykonywać dokąd chociaż jeden klawisz będzie naciśnięty prawda ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />więc zgodnie z twoim założeniem nich keys = 1111 1011 gdzie keys_mask = 0000 0110<br /><br />no to:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">1111 1011<br />0000 0110 AND<br />-----------------<br />0000 0010 wynik</div><br /><br />prawda ? no i teraz porównujemy czy wynik jest równy keys_mask <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />0000 0010 == 0000 0110 ??? chyba nie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> a kiedy będzie równy ? no wtedy gdy żaden z dwóch klawiszy nie będzie wciśnięty<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">1111 1111<br />0000 0110 AND<br />----------------<br />0000 0110 wynik</div><br /><br />teraz widzisz że wynik = keys_mask prawda ? czyli żaden klawisz nie jest wciśnięty<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 9 kwi 2013, o 12:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Tom277]]></name></author>
<updated>2013-04-09T12:13:55+01:00</updated>
<published>2013-04-09T12:13:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2822&amp;p=33915#p33915</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2822&amp;p=33915#p33915"/>
<title type="html"><![CDATA[Re: Kod RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2822&amp;p=33915#p33915"><![CDATA[
Nie Mirku, nie denerwuje się, wręcz przeciwnie. Zaglądam bardzo często na to forum ponieważ tu jest fajna atmosfera to nie to co elektroda gdzie łatwo &quot;oberwać&quot;, po prostu zdaję sobie sprawę, że moje pytanie jest dla wielu banalne. Sam robię bardziej skomplikowane rzeczy a takiej podstawy nie mogę zrozumieć. Jestem bardzo wdzięczny za to że komuś się chce tłumaczyć ukłony po raz kolejny dla was koledzy.<br />Myślę, że rozumiem operację bitowe aczkolwiek gdzieś mógł się wkraść błąd. Również rozpisuję sobie to na kartce, łatwiej to ogarnąć ale jak napisałem wcześniej gdzieś mogłem strzelić babola<br /><br />Wracając do meritum.<br />Rozpisałem sobie to tak:<br /><br />nie naciśnięty żaden klawisz<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">Wszystkie bity PINB off         1111 1111 </div><br />więc<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">keys=PINB</div><br />daje<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">keys               1111 1111</div><br />a<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">KEYS_MASK                        0000 0110</div><br />w warunku if<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">keys &amp; KEYS_MASK         0000 0110<br />wynik               0000 0110</div><br />if sie spełni zaneguje KEYS_MASK dając <br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">KEYS_MASK     1111 1001</div><br /><br />i dalej ale tu chyba coś mieszam<br />naciskam KEY1<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">keys                1111 1101</div><br />a<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">KEY1               0000 0010</div><br />co daje mi <div class="codetitle"><b>Code:</b></div><div class="codecontent">keys &amp; KEY1            0000 0000</div><br /><br />tylko proszę się nie śmiać  <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" />  <img src="https://forum.atnel.pl/images/smilies/icon_redface.gif" alt=":oops:" title="Zawstydzony" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=548">Tom277</a> — 9 kwi 2013, o 12:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-04-09T11:06:27+01:00</updated>
<published>2013-04-09T11:06:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2822&amp;p=33913#p33913</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2822&amp;p=33913#p33913"/>
<title type="html"><![CDATA[Re: Kod RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2822&amp;p=33913#p33913"><![CDATA[
<div class="quotetitle">squeez napisał(a):</div><div class="quotecontent"><br />Ja zazwyczaj jak czegoś nie rozumiem to staram się analizować kod jak kompilator (na kartce krok po kroku rozpisywać co się dzieje).<br /></div><br />To jest bardzo dobra podpowiedź.<br /><br /><div class="quotetitle">squeez napisał(a):</div><div class="quotecontent"><br />Czy operacje bitowe są dla ciebie zrozumiałem bo to podstawa żeby zrozumieć co się dzieje w tym warunku dokładnie tu: (PINB &amp; ((1&lt;&lt;PB1) | (1&lt;&lt;PB3)))<br /></div><br /><br />A to jest bardzo dobre i ważne w tym przypadku pytanie. Bez zrozumienia tego ani rusz <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> rzeczywiście.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 9 kwi 2013, o 11:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-04-09T10:19:20+01:00</updated>
<published>2013-04-09T10:19:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2822&amp;p=33911#p33911</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2822&amp;p=33911#p33911"/>
<title type="html"><![CDATA[Re: Kod RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2822&amp;p=33911#p33911"><![CDATA[
Ale jakie to zawracanie głowy? - po co się denerwujesz skoro grzecznie dopytuję w czym problem bo nie mogę zrozumieć też ciebie - więc można po prostu dopytać i wyjaśniać dalej na spokojnie. Skoro ja mogłem dla ciebie nie do końca przejrzyście coś opisać w książce to zrozum, że ktoś kto zadaje pytanie może równie niezbyt przejrzyście opisać swój problem. Jak widzisz to nie takie proste przekazać wszystko za pomocą tekstu. To tak na początek, a forum jest po to żeby pomagać i próbuję to robić.<br /><br />keys jak widzisz pobiera wartość z rejestru PINB (czyli robimy odczyt tego co jest na wejściach tego rejestru ... gdybyś nie do końca wiedział do czego jest rejestr PINB to polecam też ten artykuł - bo niestety zabrakło tej informacji w książce mojej omyłkowo)<br /><br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2012/01/avr-porty-wewy-dir-podstawy.html" >http://mirekk36.blogspot.com/2012/01/av ... stawy.html</a><!-- m --><br /><br />więc skoro w zmiennej keys mamy już stany WEJŚĆ z PINB czyli stany wszystkich klawiszy to maskujemy wszystkie bity które nas nie interesują - żeby wziąć pod uwagę TYLKO te do których są podłączone klawisze zawarte w masce KEYS_MASK .....<br /><br />(keys &amp; KEYS_MASK)<br /><br />gdy wykona się operacja maskowania to porównujemy wynik operacji z samą maską aby sprawdzić czy którykolwiek z klawiszy jest wciśnięty (oczywiście zareaguje to także wtedy gdy np będą wciśnięte dwa jednocześnie - ale to nie istotne na tym etapie) bo sprawdzamy tylko czy jest którykolwiek wciśnięty.<br /><br />i wtedy jeśli tak to coś dalej robimy po IF<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 9 kwi 2013, o 10:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Tom277]]></name></author>
<updated>2013-04-09T09:51:14+01:00</updated>
<published>2013-04-09T09:51:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2822&amp;p=33908#p33908</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2822&amp;p=33908#p33908"/>
<title type="html"><![CDATA[Re: Kod RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2822&amp;p=33908#p33908"><![CDATA[
Wiesz Mirek gdyby nie było kłopotu to nie zawracałbym wam głowy. Nie lubię wklejać gotowych kawałków kiedy nie rozumiem co tam się dzieję dlatego próbuje dojść z waszą pomocą do jakiegoś ładu.<br />ok. więc może po kolei.<br />Po co jest uint8_t keys = PINB; ?<br />KEYS_MASK odzwierciedla stan switchy, tak ?<br />Ja rozumiem, że do wielu z was jest to banalne, ale gdzieś się zakałapućkałem po drodze i nie mogę sobie tego rozpisać.<br />Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=548">Tom277</a> — 9 kwi 2013, o 09:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-04-09T09:35:08+01:00</updated>
<published>2013-04-09T09:35:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2822&amp;p=33905#p33905</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2822&amp;p=33905#p33905"/>
<title type="html"><![CDATA[Re: Kod RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2822&amp;p=33905#p33905"><![CDATA[
KEYS_MASK  nie przyjmuje jakiejś tam wartości w momencie wciśnięcia - przecież napisane jest to dużymi literami co w moich kodach zwykle świadczy iż jest to stała. Poszukaj wcześniej w kodzie definicji KEYS_MASK ... a zresztą widać przecież nawet w tym co pokazałeś - więc w czym kłopot ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 9 kwi 2013, o 09:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Tom277]]></name></author>
<updated>2013-04-09T09:17:00+01:00</updated>
<published>2013-04-09T09:17:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2822&amp;p=33904#p33904</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2822&amp;p=33904#p33904"/>
<title type="html"><![CDATA[Re: Kod RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2822&amp;p=33904#p33904"><![CDATA[
Nie rozumiem co się dokładnie dzieje w linijce np. 2 Jaka wartosc przyjmie KEYS_MASK w momencie naciśnięcia KEYS1?<br />Czy keys = PINB; to jest stan portu B potrzebny do maski?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=548">Tom277</a> — 9 kwi 2013, o 09:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Tom277]]></name></author>
<updated>2013-04-09T08:57:49+01:00</updated>
<published>2013-04-09T08:57:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2822&amp;p=33902#p33902</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2822&amp;p=33902#p33902"/>
<title type="html"><![CDATA[Kod RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2822&amp;p=33902#p33902"><![CDATA[
Proszę o objaśnienie poniższego fragmentu kodu dotyczącego obsługi klawiszy w pilocie RC5. Chciałby wykorzystać to w innym projekcie ale nie za bardzo rozumiem co tu się dzieję.<div class="codetitle"><b>Code:</b></div><div class="codecontent">#define KEY1 (1&lt;&lt;PB1)<br />#define KEY2 (1&lt;&lt;PB3)<br />#define KEY3 (1&lt;&lt;PB4)<br /><br />#define KEYS_MASK (KEY1|KEY2) <br /><br /><br />1.   uint8_t keys = PINB; <br /><br />2.   if( (keys &amp; KEYS_MASK) != KEYS_MASK ) {   // sprawdzamy czy wciśnięty jakikolwiek klawisz<br />3.   _delay_ms(50);         // eliminacja drgań styków<br />4.   keys = PINB;<br />5.   if( (keys &amp; KEYS_MASK) != KEYS_MASK ) {   // sprawdzamy czy wciśnięty jakikolwiek klawisz<br /><br />6.   do {<br /><br />7.   if( !(keys &amp; KEY1) ) command = _CMD1_RC5;<br />8.   else<br />9.   if( !(keys &amp; KEY2) ) command = _CMD2_RC5;<br />10.   else<br />11.   keys = PINB;<br /><br />12.   } while ( (keys &amp; KEYS_MASK) != KEYS_MASK );   /* powtarzaj gdy wciśnięty */<br /></div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=548">Tom277</a> — 9 kwi 2013, o 08:57</p><hr />
]]></content>
</entry>
</feed>