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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2012-10-26T09:12:47+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=1707&amp;mode</id>
<entry>
<author><name><![CDATA[xamrex]]></name></author>
<updated>2012-10-26T09:12:47+01:00</updated>
<published>2012-10-26T09:12:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1707&amp;p=17680#p17680</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1707&amp;p=17680#p17680"/>
<title type="html"><![CDATA[Re: Ustawienie pinów na porcie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1707&amp;p=17680#p17680"><![CDATA[
Ok, dzięki za odpowiedź.<br />Kompletnie zapomniałem o maskach <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=74">xamrex</a> — 26 paź 2012, o 09:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-10-26T09:02:58+01:00</updated>
<published>2012-10-26T09:02:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1707&amp;p=17679#p17679</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1707&amp;p=17679#p17679"/>
<title type="html"><![CDATA[Re: Ustawienie pinów na porcie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1707&amp;p=17679#p17679"><![CDATA[
Trzeba użyć maskowania, masz przykład tego w pierwszej książce i w kodzie na DVD przy okazji multipleksowania wyświetlacza LED, gdzie omawiam wprawdzie kolejne 4 bity ale co za problem zrobić maskę na dowolne bity, a więc:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">#define MASK ( (1&lt;&lt;PB2) | (1&lt;&lt;PB3) | (1&lt;&lt;PB5) | (1&lt;&lt;PB6) )</div><br /><br />i teraz w kodzie, chcemy np wszystkie bity z tej maski ustawić na 1<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">PORTB = (PORTB &amp; MASK) | ( 0xFF &amp; ~MASK );</div><br /><br />zresztą w tym przypadku jest jeszcze lepiej bo można zamiast 0xFF używać jakiejś zmiennej dzięki której możesz jeszcze niektóre z tych 4 bitów ustawiać wg życzenia na 0 a niektóre na 1, np:<br /><br />[syntax=c]uint8_t zmienna = (1&lt;&lt;PB2)|(1&lt;&lt;PB6);<br />PORTB = (PORTB &amp; MASK) | ( zmienna &amp; ~MASK );[/syntax]<br /><br /><br />ale jeśli chcesz skasować naraz szybko wszystkie bity maski:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">PORTB &amp;= ~MASK;</div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 26 paź 2012, o 09:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xamrex]]></name></author>
<updated>2012-10-26T08:48:07+01:00</updated>
<published>2012-10-26T08:48:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1707&amp;p=17678#p17678</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1707&amp;p=17678#p17678"/>
<title type="html"><![CDATA[Ustawienie pinów na porcie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1707&amp;p=17678#p17678"><![CDATA[
Witam,<br />Aż wstyd pytać ale mam pewien problem:)<br /><br />Załóżmy, że chce ustawić sobie wyjścia portu B w ten sposób:<br /><a href="http://forum.atnel.pl/_obrazki/o/74_409ee24d3699e18fa5c0598532981197.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/74_409ee24d3699e18fa5c0598532981197.png" alt="Obrazek" /></a><br /><br /><span style="text-decoration: underline">Można to zrobić na kilka sposobów:</span><br />Zapis w jednej linii:<br />1)[syntax=c]PORTB=0b10010011;[/syntax]<br /><br />Zapis w 2 liniach:<br />2)[syntax=c]PORTB=0x00; <br />PORTB=(1&lt;&lt;PB0 | 1&lt;&lt;PB1 || 1&lt;&lt;PB4 | 1&lt;&lt;PB7);[/syntax]<br /><br />3)[syntax=c]PORTB=0xff; <br />PORTB=~(1&lt;&lt;PB2 | 1&lt;&lt;PB3 || 1&lt;&lt;PB5 | 1&lt;&lt;PB6);[/syntax]<br /><br />Ale załóżmy, że chcemy sobie zdefiniować numery portów do linii danych (np. nie po kolei:)<br />[syntax=c]<br />#define D0 0<br />#define D1 2<br />#define D2 3<br />#define D3 1<br />#define D4 5<br />#define D5 4<br />#define D6 7<br />#define D7 6[/syntax]<br /><br />To teraz znowu, aby ustawić wyjścia portu w taki sposób jak na obrazku, to musimy użyć takiego zapisu:<br />Zapis w 2 liniach:<br /><br />2)[syntax=c]PORTB=0x00; <br />PORTB=(1&lt;&lt;D0 | 1&lt;&lt;D1 || 1&lt;&lt;D4 | 1&lt;&lt;D7);[/syntax]<br /><br />3)[syntax=c]PORTB=0xff; <br />PORTB=~(1&lt;&lt;D2 | 1&lt;&lt;D3 || 1&lt;&lt;D5 | 1&lt;&lt;D6);[/syntax]<br /><br />No i teraz moje główne i  zasadnicze pytanie:<br /><br />Czy jeśli mamy sobie zdefiniowane piny, to czy w jakiś magiczny sposób da się ustawić port, tak aby użyć zapisu w jednej linii:<br /><br />Chodzi mi o coś takiego np. (WIEM, ŻE TEN ZAPIS JEST BŁĘDNY!!!) (bo i tak jeśli port będzie wcześniej np. na 0xff to nie ustawi tych 0.<br />[syntax=c]PORTB=(1&lt;&lt;D0 | 1&lt;D1 | 0&lt;&lt;D2 | 0&lt;&lt;D3 | 1&lt;&lt;D4 | 0&lt;&lt;D5 | 0&lt;&lt;D6 | 1&lt;&lt;D7);[/syntax]<br /><br />Da się to jakoś zrobić w jednej linii?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=74">xamrex</a> — 26 paź 2012, o 08:48</p><hr />
]]></content>
</entry>
</feed>