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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-11-11T21:05:26+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=9189&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-11-11T21:05:26+01:00</updated>
<published>2014-11-11T21:05:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9189&amp;p=103449#p103449</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9189&amp;p=103449#p103449"/>
<title type="html"><![CDATA[Re: Pytanie Początkującego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9189&amp;p=103449#p103449"><![CDATA[
<div class="quotetitle">Lobuz napisał(a):</div><div class="quotecontent"><br />A co z wyrażeniem !PORTD? Jak powinienem to interpretować. Wyrażenie będzie &quot;true&quot; kiedy !PORTD ? Ale jak wygląda PORTD przed zanegowaniem ? Nie rozumiem tylko właśnie skąd sie bierze PORTD do &quot;porównania&quot; z !PORTD. Trochę chyba zagmatwanei pisze<br /></div><br />Nie piszesz zagmatwanie - piszesz tak że widać że jeszcze kompletnie nie znasz podstaw - więc trudno ci na razie cokolwiek zrozumieć. Dlatego na pewno warto zacząć od Bluebooka i zapoznać się z OPERACJAMI BITOWYMI bo to dla ciebie słowo KLUCZ w tym przypadku. Także inne podstawy. Bez tego jak widzisz ciężko nawet na podstawie poradników wideo coś do końca zrozumieć. Ale to normalne bo poradniki to tylko uzupełnienie do książek.<br /><br />Nie mniej jednak rzuć sobie okiem w czasie czekania na książkę na ten poradnik ok?<br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2014/05/if-pind-operacje-bitowe-logiczne-o-co.html" >http://mirekk36.blogspot.com/2014/05/if ... -o-co.html</a><!-- m --><br /><br />powinien też rzucić ci sporo światła<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 11 lis 2014, o 21:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2014-11-11T17:47:12+01:00</updated>
<published>2014-11-11T17:47:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9189&amp;p=103397#p103397</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9189&amp;p=103397#p103397"/>
<title type="html"><![CDATA[Re: Pytanie Początkującego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9189&amp;p=103397#p103397"><![CDATA[
Nie piszę tego złośliwie ale wydaje mi się, że zamiast teraz pytać o każdy szczegół najlepiej będzie jak poczekasz na Bluebooka. I jeśli po przeczytaniu go jeden raz czegoś nie zrozumiesz to wtedy ewentualnie dopytasz.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 11 lis 2014, o 17:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Lobuz]]></name></author>
<updated>2014-11-11T17:42:40+01:00</updated>
<published>2014-11-11T17:42:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9189&amp;p=103395#p103395</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9189&amp;p=103395#p103395"/>
<title type="html"><![CDATA[Re: Pytanie Początkującego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9189&amp;p=103395#p103395"><![CDATA[
A co z wyrażeniem !PORTD? Jak powinienem to interpretować. Wyrażenie będzie &quot;true&quot; kiedy !PORTD ? Ale jak wygląda PORTD przed zanegowaniem ? Nie rozumiem tylko właśnie skąd sie bierze PORTD do &quot;porównania&quot; z !PORTD. Trochę chyba zagmatwanei pisze <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><br /><br /><br />Operacje logiczne typu OR, NOT, AND, XOR, NOR itd znam jeszcze ze szkoły to samo z HEX, DEC, BIN...<br /><br />tu chodzi cyba raczej o specyfike &quot;C&quot;<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6517">Lobuz</a> — 11 lis 2014, o 17:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[doman89]]></name></author>
<updated>2014-11-11T17:33:39+01:00</updated>
<published>2014-11-11T17:33:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9189&amp;p=103392#p103392</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9189&amp;p=103392#p103392"/>
<title type="html"><![CDATA[Re: Pytanie Początkującego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9189&amp;p=103392#p103392"><![CDATA[
Gdzie tam do maskowania bitów...<br /><br />Koledze to na początek jak wyżej już napisano, radzę się zapoznać z zasadami forum, tudzież wstawianie kodu w odpowiednie znaczniki syntax.<br /><br />Co to tematu to:<br />1. Niech kolega poczyta o operacjach logicznych<br /><a href="http://edu.i-lo.tarnow.pl/inf/alg/006_bin/0013.php"  class="postlink">Operacje logiczne</a><br /><a href="http://mirekk36.blogspot.com/2014/05/if-pind-operacje-bitowe-logiczne-o-co.html"  class="postlink">Blog Pana Mirka - operacje bitowe i logiczne</a><br /><br />2. Zapozna się z liczbami binarnymi i hexadecymalnymi:<br /><a href="http://mirekk36.blogspot.com/2014/03/liczby-binarne-podstawy.html"  class="postlink">Blog Pana Mirka - Liczby binarne podstawy</a><br /><a href="http://mirekk36.blogspot.com/2014/03/liczby-szesnastkowe-hexadecymalne.html"  class="postlink">Blog Pana Mirka - Liczby heksadecymalne</a><br /><br /><span style="color: #0000FF">z Niebieskim pozdRowieniem,<br />Doman89</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3271">doman89</a> — 11 lis 2014, o 17:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2014-11-11T17:36:59+01:00</updated>
<published>2014-11-11T17:20:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9189&amp;p=103390#p103390</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9189&amp;p=103390#p103390"/>
<title type="html"><![CDATA[Re: Pytanie Początkującego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9189&amp;p=103390#p103390"><![CDATA[
Popraw posta i wstaw kod w znacznikach syntax a nie w code <!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic7402.html" >topic7402.html</a><!-- l --><br /><br />A co do twoich pytań to powinieneś poczytać o maskowaniu bitów. Albo obejrzeć Mirka poradniki, w których to porusza temat maskowania bitów<br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2014/03/maskowanie-bajtow-z-przymruzeniem-oka.html" >http://mirekk36.blogspot.com/2014/03/ma ... m-oka.html</a><!-- m --><br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2014/05/if-pind-operacje-bitowe-logiczne-o-co.html" >http://mirekk36.blogspot.com/2014/05/if ... -o-co.html</a><!-- m --><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 10 minutach ]</span></strong><br /><br />A tak w skrócie ten zapis <strong>PORTD &amp; 0x80</strong> to jest wyrażenie (jak wszystko w C). Wyrażenia w C mogą być prawdziwe (true) lub fałszywe (false). To wyrażenie można zapisać tak<br />[syntax=c]PORTD &amp; 0b10000000[/syntax]<br />Dzięki temu ładnie widać kiedy ono będzie prawdziwe. Wartość 0x80 lub 0b10000000 w tym wyrażeniu to tzw. maska bitowa, która ma ustawiony najstarszy bit. I teraz to wyrażenie będzie prawdziwe tylko wtedy kiedy w PORTD najstarszy bit równierz będzie miał wartość 1.<br /><br />Czyli ten warunek<br />[syntax=c]if(PORTD &amp; 0x80 )<br />{<br />}[/syntax]<br />będzie spełniony jeśli najstarszy bit PORTD (bit nr 7 bo bity liczymy od zera) będzie miał wartość 1.<br /><br />Natomiast to wyrażenie <strong>!PORTD</strong> będzie prawdziwe jeśli wszystkie bity tego portu, rejestru lub zmiennej będą miały wartość 0. Wykrzyknik w tym wyrażeniu to tzw. negacja logiczna. W przyszłości nie myl tego z negacją bitową, którą oznacza się znakiem tyldy ~.<br /><br />Czyli zamiast<br />[syntax=c]if(!PORTD)<br />{<br />{[/syntax]<br />można by zapisać<br />[syntax=c]if(PORTD == 0x00)<br />{<br />{[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 11 lis 2014, o 17:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Lobuz]]></name></author>
<updated>2014-11-11T17:31:50+01:00</updated>
<published>2014-11-11T17:11:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9189&amp;p=103388#p103388</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9189&amp;p=103388#p103388"/>
<title type="html"><![CDATA[Pytanie Początkującego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9189&amp;p=103388#p103388"><![CDATA[
Witam<br /><br />Po obejrzeniu kilku poradników Pana Mirka i wcześniejszej chęci nauki programowania AVR w C zdecydowałem się na zakup blue booka na którego z niecierpliowścią czekam. W tym czasie zaczołęm przeglądać internet i analizować programy dostępne w internecie i tu do was pytanie drodzy użytkownicy:<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />int main(void)<br />{<br /><br />  DDRD = 0xff;<br /><br />  DDRB = 0x02;<br /><br />  DDRC  = 0x00;<br />  PORTC = 0x03;<br /><br /><br />  while(1)<br />  {<br />  <br />      if(!(PINC &amp; (1&lt;&lt;PC1)))<br />      {<br />        if(PORTD &amp; 0x80 <br />        {<br /><br />          PORTB |= 0x02;<br />          _delay_ms(100);<br />          PORTB &amp;= ~0x02;<br />        }<br />        else<br />        {<br /><br />          PORTD &lt;&lt;= 1;<br />          PORTD |= 1;<br />        }<br /><br />        _delay_ms(80);<br /><br />        while(!(PINC &amp; (1&lt;&lt;PC1))) {}<br /><br />        _delay_ms(80);<br />      }<br /><br />    if(!(PINC &amp; (1&lt;&lt;PC0)))<br />    {<br />      if(!PORTD) <br />      {<br /><br />        PORTB |= 0x02;<br />        _delay_ms(100);<br />        PORTB &amp;= ~0x02;<br />      }<br />      else<br /><br />        PORTD &gt;&gt;= 1;<br /><br /><br />       _delay_ms(80);<br /><br />      while(!(PINC &amp; (1&lt;&lt;PC0))) {}<br /><br />       _delay_ms(80);<br />    }<br />}<br />}[/syntax]<br /><br /><br />Jak powinienem rozumieć <span style="color: #4000FF">PORTD &amp; 0x80</span> (zamiast tego można zapisaać:PORTD == 0xff) oraz <span style="color: #4000FF">!PORTD</span> (zamiast tego można zapisać: PORTD == 0x00). Chodzi tu o odczytanie czy na porcie są stany wysokie czy niskie, to wiem. Ale jak te wyrażenia działają bo nie za bardzo rozumię?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6517">Lobuz</a> — 11 lis 2014, o 17:11</p><hr />
]]></content>
</entry>
</feed>