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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-05-12T13:14:03+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=7007&amp;mode</id>
<entry>
<author><name><![CDATA[VDR]]></name></author>
<updated>2014-05-12T13:14:03+01:00</updated>
<published>2014-05-12T13:14:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80893#p80893</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80893#p80893"/>
<title type="html"><![CDATA[Re: Jak zrozumieć ten kod]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80893#p80893"><![CDATA[
<div class="quotetitle">ifrook napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">matw napisał(a):</div><div class="quotecontent">@ifrook, zobacz to <!-- 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 --> jest to uzupełnienie wiedzy z niebieskiej  książki w tym zakresie, powinno Ci się sporo wyjaśnić <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /></div><br /><br /><br />Czemu sterując masą muszę użyć iloczynu a nie sumy logicznej? wiem czym one się różnią ale z czego to wynika</div><br /><br />Wynika to ze sposobu w jaki sterujesz. Mirek to ladnie wyjasnil zarowno w BB jak i na blogu. <br />1) jesli dioda jest podciagnieta przez rezystor do masy - to aby ja zapalic na porcie musi byc stan wysoki, jak jest niski to nie swieci. <br />2) jesli dioda jest podciagnieta przez rezystor do VCC - to aby ja zapalic na porcie musi byc stan niski, jak jest wysoki dioda nie swieci.<br /><br />Jesli mowiac &quot;sterujac masa&quot; masz na mysli sytuacje nr 2 - to aby dioda swiecila musi byc zero - a zeby ustawic na konkretnym bicie zero trzeba uzyc operacji REJESTR &amp;= !(maska)<br /><br />Krotko mowiac - aby &quot;zapalic&quot; jedynke na odpowiedniej pozycji w bajcie wykorzystujemy odpowiednia maske i operacje OR czyli | <br />Aby zgasic - czyli ustawic zero na odpowiedniej pozycji w bajcie wykorzystujemy odpowiednia maske i operacje &amp; (AND) i !(NOT) <br /><br />Dlaczego tak ? Bo wynika to z tablicy prawd dla tych operacji. Idea jest taka aby maska tak dzialala aby zmienialy sie tylko te bity ktore chcemy zmienic. No i mamy miec mozliwosc ustawienia albo 0 albo 1 na tych bitach. No i dzieki dokladnie takim operacjom logicznym to osiagamy. Takim a nie innym <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br /><br />Tak jak koledzy powyzej polecam przesledzic tablice prawd dla OR, AND i NOT. Nastepnie rozpisac sobie bajt, rozpisac sobie jakas maske, przeprowadzic operacje logiczne i przesledzic w jaki sposob pozostale bity w bajcie sa przeslaniane i dlaczego zmiana (na 0 lub 1) nastepuje tylko i wylacznie na bicie(bitach) dla ktorego(rych) w masce mamy 1.  <br /><br />Przeczytaj jeszcze raz dokladnie bluebooka i <!-- 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 --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=601">VDR</a> — 12 maja 2014, o 13:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ifrook]]></name></author>
<updated>2014-05-10T12:01:49+01:00</updated>
<published>2014-05-10T12:01:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80726#p80726</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80726#p80726"/>
<title type="html"><![CDATA[Re: Jak zrozumieć ten kod]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80726#p80726"><![CDATA[
<div class="quotetitle">matw napisał(a):</div><div class="quotecontent"><br />@ifrook, zobacz to <!-- 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 --> jest to uzupełnienie wiedzy z niebieskiej  książki w tym zakresie, powinno Ci się sporo wyjaśnić <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /></div><br /><br /><br />Czemu sterując masą muszę użyć iloczynu a nie sumy logicznej? wiem czym one się różnią ale z czego to wynika<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3649">ifrook</a> — 10 maja 2014, o 12:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-05-09T15:28:57+01:00</updated>
<published>2014-05-09T15:28:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80645#p80645</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80645#p80645"/>
<title type="html"><![CDATA[Re: Jak zrozumieć ten kod - MASKOWANIE BITOWE I ODCZYT Z PIN]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80645#p80645"><![CDATA[
<div class="quotetitle">ifrook napisał(a):</div><div class="quotecontent"><br />// if/else rozumiem. Natomiast jak działa kod zaznaczony na czerwono. !(<br /></div><br /><br />a masz to rozpisane krok po kroku w bluebooku - z rozpisaniem na POJEDYNCZE BITY .... tylko może nie do końca chce ci się to poczytać ? popatrzeć na rysunki bo też tam są  ...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 9 maja 2014, o 15:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[acid3]]></name></author>
<updated>2014-05-09T11:53:52+01:00</updated>
<published>2014-05-09T11:53:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80627#p80627</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80627#p80627"/>
<title type="html"><![CDATA[Re: Jak zrozumieć ten kod]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80627#p80627"><![CDATA[
MASKOWANIE BITÓW ....<br />Jeśli na PINie D — pin PD2 - uC pojawi się STAN NISKI - załącz diodę.<br /><br />Niestety aby dokumentnie to zrozumieć potrzebne jest kilka rzeczy ... <br />1. BB, Mirek całkiem całkiem opisuje maskowanie.<br />2. <!-- m --><a class="postlink" href="https://www.youtube.com/watch?v=zittec1MM5w" >https://www.youtube.com/watch?v=zittec1MM5w</a><!-- m --> - bardzo interesujący filmik przesłaniający bity<br />3. <!-- m --><a class="postlink" href="http://pl.wikipedia.org/wiki/Maska_bitowa" >http://pl.wikipedia.org/wiki/Maska_bitowa</a><!-- m --> – to po przeczytaniu razy +/- 20 też nieco rozjaśnia w głowie<br />4. ćwiczenie (nawet na papierze) maskowania bitów ... i rozrysowanie po swojemu i powieszenie na ścianie ... ( to działa .. <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=944">acid3</a> — 9 maja 2014, o 11:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ifrook]]></name></author>
<updated>2014-05-09T11:44:33+01:00</updated>
<published>2014-05-09T11:44:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80626#p80626</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80626#p80626"/>
<title type="html"><![CDATA[Re: Jak zrozumieć ten kod]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80626#p80626"><![CDATA[
hej:) trucia ciąg dalszy :p<br />1.<br />  DDRD |= (1&lt;&lt;PD2) // To jest dla mnie jasne<br /><br />  PORTD &amp;= ~(1&lt;&lt;PD2) // To jest mniej jasne. Czemu musi być tu negacja jeśli portd 0b00000000 &amp; 0b00000100 daja fałasz czyli ustawiają stan niski ? Jeśli dodam negacje to portd 0b00000000 &amp; 0b11111011 to też da fałsz ? <br /><br />2.ustawianie pinów/portów jako wejścia<br />  DDRD &amp;= ~(1&lt;&lt;PD2)<br />  PORTD |= (1&lt;&lt;PD2)<br /><br />  if( <span style="color: #FF0000">!(PIND &amp; (1&lt;&lt;PD2)</span>) ) LED_ON <br />  else LED_OFF<br />       // if/else rozumiem. Natomiast jak działa kod zaznaczony na czerwono. !( 0b00000000 &amp; 0b00000100) mógłby ktoś mi to wyjaśnić proszę:)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3649">ifrook</a> — 9 maja 2014, o 11:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matw]]></name></author>
<updated>2014-05-08T09:30:00+01:00</updated>
<published>2014-05-08T09:30:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80527#p80527</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80527#p80527"/>
<title type="html"><![CDATA[Re: Jak zrozumieć ten kod]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80527#p80527"><![CDATA[
@ifrook, zobacz to <!-- 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 --> jest to uzupełnienie wiedzy z niebieskiej  książki w tym zakresie, powinno Ci się sporo wyjaśnić <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=2394">matw</a> — 8 maja 2014, o 09:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Alltronik]]></name></author>
<updated>2014-05-08T09:29:40+01:00</updated>
<published>2014-05-08T09:29:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80526#p80526</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80526#p80526"/>
<title type="html"><![CDATA[Re: Jak zrozumieć ten kod]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80526#p80526"><![CDATA[
Zelezy jak diode podlaczysz do pinu na stronie co Mirek ci podal masz tam dwa przyklady jak sterujsz dioda stanem niskim i wysokim.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=985">Alltronik</a> — 8 maja 2014, o 09:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ifrook]]></name></author>
<updated>2014-05-08T09:24:39+01:00</updated>
<published>2014-05-08T09:24:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80524#p80524</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80524#p80524"/>
<title type="html"><![CDATA[Re: Jak zrozumieć ten kod]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80524#p80524"><![CDATA[
no tak kolejność działań, ale w jaki sposób LED_ON włącza diodę jeśli jest fałsz<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3649">ifrook</a> — 8 maja 2014, o 09:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Alltronik]]></name></author>
<updated>2014-05-08T09:07:16+01:00</updated>
<published>2014-05-08T09:07:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80521#p80521</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80521#p80521"/>
<title type="html"><![CDATA[Re: Jak zrozumieć ten kod]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80521#p80521"><![CDATA[
A moze tak to sobie przeanalizuj <br /><br />1 LED_PIN to (0b1000000)<br />2 LED_ON = 0b00000000 &amp; ~(0b1xxxxxxx)<br />LED_ON = 0b0xxxxxxx <br />LED_ON = 0b0xxxxxxx<br />czyli mamy 0 a więc falsz<br /><br />Sory ale z telefonu na szybko napisalem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=985">Alltronik</a> — 8 maja 2014, o 09:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ifrook]]></name></author>
<updated>2014-05-08T08:35:35+01:00</updated>
<published>2014-05-08T08:35:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80516#p80516</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80516#p80516"/>
<title type="html"><![CDATA[Re: Jak zrozumieć ten kod]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80516#p80516"><![CDATA[
Dzięki trochę rozumiem ale tylko trochę ;p<br />Czy dobrze to rozumiem?<br /><br /><br />1 #define LED_PIN (1&lt;&lt;PC7) <br />2 #define LED_ON PORTC &amp;= ~LED_PIN <br />3 #define LED_OFF PORTC |= LED_PIN <br />4 #define LED_TOG PORTC ^= LED_PIN<br /><br />int main(void)<br />{<br />DDRC |= LED_PIN;<br />while(1)<br />{<br />LED_ON;<br />_delay_ms(1000);<br />    LED_OFF;<br />_delay_ms(1000);}<br />******************************<br />1 LED_PIN to (0b1000000)<br />2 LED_ON  = 0b00000000 &amp; ~0b1xxxxxxx<br />     LED_ON = ~0b0xxxxxxx <br />     LED_ON = 0b1xxxxxxx<br />czyli mamy 1 a więc prawdę, dioda się zapala<br />i odlicza się czas 1 s.<br /><br />3 Rozumiem że tu podstawiam teraz pod LED_OFF 0b10000000 bo dioda już świeci więc na PORTC jest 1?<br />więc LED_OFF = 0b1xxxxxxx | 0b1xxxxxxx<br />LED_OFF = 0b1 czyli prawda?<br /><br />coś tu źle rozumiem bo w jaki sposób LED_OFF gasi diodę?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3649">ifrook</a> — 8 maja 2014, o 08:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2014-05-07T23:17:48+01:00</updated>
<published>2014-05-07T23:17:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80490#p80490</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80490#p80490"/>
<title type="html"><![CDATA[Re: Jak zrozumieć ten kod]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80490#p80490"><![CDATA[
PC6 to 6, a 1&lt;&lt;6 to 0b0000000<strong>1</strong>&lt;&lt;6 (przesuwamy w lewo) = 0b0<strong>1</strong>000000<br />&amp; służy by sprawdzić tylko bit numer 6 w rejestrze wejściowym PINC (PINC.6)<br />PINC to stan wejść i jak do pinu 6 portu C podepniesz przycisk (podciąganie do plusa musi być włączone lub zewnętrzny rezystor) to jak jest puszczony to w rejestrze masz 0bx<strong>1</strong>xxxxxx, a gdy wciśnięty 0bx<strong>0</strong>xxxxxx, gdzie x to wartość dowolna i po wykonaniu iloczynu bitowego z 0b0<strong>1</strong>000000 masz dla puszczonego 0b01000000 i 0b00000000 dla wciśniętego. Liczba różna od zera to prawda, a równa zero to fałsz i po negacji logicznej (!) prawda zamienia się na fałsz i na odwrót. Dlatego dla wciśniętego przycisku masz kolejno PINC=0bx0xxxxxx potem 0bx0xxxxxx &amp; 0b01000000 = 0b00000000 co jest fałszem a po zanegowaniu prawdą i wynik ostateczny w odpowiedzi na pytanie warunku: Czy to prawda, że przycisk jest wciśnięty? ----&gt; Tak to prawda... i można wykonywać to co jest w kamerkach po if(key_down)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 7 maja 2014, o 23:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-05-07T23:14:48+01:00</updated>
<published>2014-05-07T23:14:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80489#p80489</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80489#p80489"/>
<title type="html"><![CDATA[Re: Jak zrozumieć ten kod]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80489#p80489"><![CDATA[
no troszkę podstaw to musisz poczytać<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 />skąd masz wiedzieć co jest w PINC ? .... to co podajesz na WEJŚCIA procka na porcie C, jeśli jedynki to masz jedynki a jeśli zera to zera<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 7 maja 2014, o 23:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ifrook]]></name></author>
<updated>2014-05-07T23:01:55+01:00</updated>
<published>2014-05-07T23:01:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80485#p80485</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80485#p80485"/>
<title type="html"><![CDATA[Jak zrozumieć ten kod - MASKOWANIE BITOWE I ODCZYT Z PINÓW]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7007&amp;p=80485#p80485"><![CDATA[
konkretnie ze strony 189 bluebooka:<br /><br />#define key_down !(PINC &amp; KEY_PIN) czyli jeżeli key_pin to (1&lt;&lt;PC6) a pinc to 00000000 to znaczy że:<br /><br />Key_down !( 00000000 &amp; 00000110) i teraz z nawiasu wychodzi !(0) więc wartość logiczna jest 1??<br /><br />nie rozumiem tego. skąd mam wiedzieć czy pinc to są same zera czy jedynki?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3649">ifrook</a> — 7 maja 2014, o 23:01</p><hr />
]]></content>
</entry>
</feed>