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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-06-19T22:25:43+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=7503&amp;mode</id>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2014-06-19T22:25:43+01:00</updated>
<published>2014-06-19T22:25:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7503&amp;p=85108#p85108</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7503&amp;p=85108#p85108"/>
<title type="html"><![CDATA[Re: Definiowanie pinów różnymi metodami.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7503&amp;p=85108#p85108"><![CDATA[
<div class="quotetitle">Zaba napisał(a):</div><div class="quotecontent"><br />mógłby ktoś rozwiać moje wątpliwości<br /></div><br />Oczywiście będzie tak jak pisze kolega <strong>MXST4</strong>. W jednym i w drugim zapisie do rejestru np. DDRD trafi to samo. Wystarczy podejrzeć plik *.lss by się przekonać i rozwiać wątpliwości.<br /><br />Pierwszy zapis<br />[syntax=c]DDRD = (DDRD = 0x20);[/syntax]<br />[syntax=asm]6c:80 e2       ldir24, 0x20; 32<br />6e:81 bb       out0x11, r24; 17<br />70:81 b3       inr24, 0x11; 17<br />72:81 bb       out0x11, r24; 17[/syntax]<br /><br />i drugi<br />[syntax=c]DDRD = 0x20;[/syntax]<br />[syntax=asm]6c:<br />6c:80 e2       ldir24, 0x20; 32<br />6e:81 bb       out0x11, r24; 17[/syntax]<br /><br />I nie trzeba być ekspertem w asemblerze (bo ja się wcale na asm nie znam) by zrozumieć te kilka linijek w pliku *.lss.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 19 cze 2014, o 22:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zaba]]></name></author>
<updated>2014-06-19T21:44:16+01:00</updated>
<published>2014-06-19T21:44:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7503&amp;p=85105#p85105</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7503&amp;p=85105#p85105"/>
<title type="html"><![CDATA[Re: Definiowanie pinów różnymi metodami.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7503&amp;p=85105#p85105"><![CDATA[
a nie jest tak że przy zapisie<br />[syntax=c]DDRD = (DDRD=0x20);[/syntax]<br />trafi wartość TRUE czyli 0x01 bo operacja <br />w nawiasiach przy prawidłowym wykonaniu<br />zwróci True i w efekcie tego do rejestru <br />DDRD trafi 0x01.<br /><br />Zaznaczam to jest pytanie <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />mógłby ktoś rozwiać moje wątpliwości<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1044">Zaba</a> — 19 cze 2014, o 21:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MXST4]]></name></author>
<updated>2014-06-19T21:35:16+01:00</updated>
<published>2014-06-19T21:35:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7503&amp;p=85102#p85102</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7503&amp;p=85102#p85102"/>
<title type="html"><![CDATA[Re: Definiowanie pinów różnymi metodami.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7503&amp;p=85102#p85102"><![CDATA[
Oczywiście w 100% się zgadzam <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Życzę miłej nocy.<br /><br /><br />MXST4<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4849">MXST4</a> — 19 cze 2014, o 21:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kaka0204]]></name></author>
<updated>2014-06-19T21:31:57+01:00</updated>
<published>2014-06-19T21:31:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7503&amp;p=85101#p85101</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7503&amp;p=85101#p85101"/>
<title type="html"><![CDATA[Re: Definiowanie pinów różnymi metodami.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7503&amp;p=85101#p85101"><![CDATA[
Ok, ale jak już już robić/uczyć się, to zgodnie ze sztuką programowania i nie popadać w złe nawyki <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=889">kaka0204</a> — 19 cze 2014, o 21:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MXST4]]></name></author>
<updated>2014-06-19T21:29:27+01:00</updated>
<published>2014-06-19T21:29:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7503&amp;p=85099#p85099</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7503&amp;p=85099#p85099"/>
<title type="html"><![CDATA[Re: Definiowanie pinów różnymi metodami.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7503&amp;p=85099#p85099"><![CDATA[
Kolega zwrócił wcześniej uwagę o tym nie błędzie, bo kod i tak wykona się poprawnie, ale o błędzie takim stylistycznym, dla programisty.<br /><br /><br />Kod autora:<br /><br />[syntax=c]#define LED_PIN (DDRD = 0b00100000)<br />DDRD |= LED_PIN;[/syntax]<br /><br /><br />Zauważ, że rejestr DDR jest r/w (read/write), w pierwszej operacji: rejestr DDRD jest zapisany tą wartością binarną, następnie jest przypisanie prawej strony do lewej, po prawej stronie po wykonaniu zapisu zostaje DDRD, który zostaje odczytany (a przed chwilką zapisaliśmy go jakąś tam wartością) i tak naprawdę dochodzi do sytuacji, że lewa = prawa i ale dane i tak się zapiszą na tym rejestrze. <br /><br /><br />MXST4<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4849">MXST4</a> — 19 cze 2014, o 21:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kaka0204]]></name></author>
<updated>2014-06-19T21:23:00+01:00</updated>
<published>2014-06-19T21:23:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7503&amp;p=85098#p85098</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7503&amp;p=85098#p85098"/>
<title type="html"><![CDATA[Re: Definiowanie pinów różnymi metodami.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7503&amp;p=85098#p85098"><![CDATA[
Niestety, ale dalej jest źle.<br />W drugim sposobie powinno być:<br /><br />[syntax=c]#define LED_PIN 0x20[/syntax]<br /><br />a w trzecim powinno być:<br /><br />[syntax=c]#define LED_PIN 0b00100000[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=889">kaka0204</a> — 19 cze 2014, o 21:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Elektronik]]></name></author>
<updated>2014-06-19T18:48:40+01:00</updated>
<published>2014-06-19T18:48:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7503&amp;p=85070#p85070</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7503&amp;p=85070#p85070"/>
<title type="html"><![CDATA[Re: Definiowanie pinów różnymi metodami.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7503&amp;p=85070#p85070"><![CDATA[
Witam<br /><br />Wielkie dzięki za rozwiązanie problemu zmyliło mnie to że w artykule było:<br />DDRB = 0b11110000; i myślałem, że to 'b' jest równoznaczne z portem B. Problem rozwiązany dziękuje za pomoc.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=858">Elektronik</a> — 19 cze 2014, o 18:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MXST4]]></name></author>
<updated>2014-06-19T18:40:58+01:00</updated>
<published>2014-06-19T18:40:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7503&amp;p=85068#p85068</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7503&amp;p=85068#p85068"/>
<title type="html"><![CDATA[Re: Definiowanie pinów różnymi metodami.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7503&amp;p=85068#p85068"><![CDATA[
Zamiast:<br /><br />[syntax=c]#define LED_PIN (DDRD = 0d00100000)[/syntax]<br /><br />powinno być:<br /><br />[syntax=c]#define LED_PIN (DDRD = 0b00100000)[/syntax]<br /><br />zamiast &quot;<strong>b</strong>&quot; miałeś &quot;<strong>d</strong>&quot; - zwykła literówka.<br /><br /><br />MXST4<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4849">MXST4</a> — 19 cze 2014, o 18:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zaba]]></name></author>
<updated>2014-06-19T18:39:25+01:00</updated>
<published>2014-06-19T18:39:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7503&amp;p=85067#p85067</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7503&amp;p=85067#p85067"/>
<title type="html"><![CDATA[Re: Definiowanie pinów różnymi metodami.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7503&amp;p=85067#p85067"><![CDATA[
dla LED_PIN w II i III sposobie jest błąd<br />po rozwinięciu przez preproesor wyjdzie takie coś<br />[syntax=c]#define LED_PIN (DDRD = 0d00100000)<br /><br />        DDRD |= (DDRD=0b00100000);                // to jest błąd<br />        PORTD |= (DDRD=0b00100000);              // to jest błąd[/syntax]<br /><br />preprocesor przy<br />[syntax=c]#define nazwa wartosc[/syntax]<br />wstawia dokładnie to co napiszesz w define po spacji oddzielającej<br />&quot;nazwę &quot;od &quot;wartości&quot;<br />w miejsce wystąpienia &quot;nazwy&quot;<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1044">Zaba</a> — 19 cze 2014, o 18:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Elektronik]]></name></author>
<updated>2014-06-19T18:16:54+01:00</updated>
<published>2014-06-19T18:16:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7503&amp;p=85066#p85066</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7503&amp;p=85066#p85066"/>
<title type="html"><![CDATA[Definiowanie pinów różnymi metodami.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7503&amp;p=85066#p85066"><![CDATA[
Witam<br /> <br />Mam pewien problem w artykule <a href="http://mirekk36.blogspot.com/2012/01/avr-porty-wewy-dir-podstawy.html"  class="postlink">http://mirekk36.blogspot.com/2012/01/avr-porty-wewy-dir-podstawy.html</a>. Przeczytałem, że można definiować piny dokładnie trzema metodami. Program ma za zadanie jedynie zmienić stan diody na przeciwny jeżeli klawisz zostanie załączony pominąłem tutaj problem związany z drganiem styków, ze względu na testowy charakter tego programu. <br /><br />I możliwość działa :<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#define LED_PIN (1&lt;&lt;PD5)<br />#define LED_TOG PORTD ^= LED_PIN<br /><br />#define KEY_PIN (1&lt;&lt;PE2)<br /><br />int main(void)<br />{<br />// ****** inicjalizacja *********<br />DDRD |= LED_PIN;// kierunek pinu PD5 – wyjściowy<br />PORTD |= LED_PIN;// wyłączenie diody LED<br />DDRE &amp;= ~KEY_PIN;// kierunek pinu PE2 - wejściowy<br />PORTE |= KEY_PIN;// podciągnięcie pinu do VCC<br /><br /><br />while(1){<br />if(!(PINE &amp; (1&lt;&lt;PE2) )){<br />LED_TOG;<br />}<br /><br />}<br />}[/syntax]<br /><br />II możliwość działa:<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#define LED_PIN (DDRD = 0x20)<br />#define LED_TOG PORTD ^= LED_PIN<br /><br />#define KEY_PIN (1&lt;&lt;PE2)<br /><br />int main(void)<br />{<br />// ****** inicjalizacja *********<br />DDRD |= LED_PIN;// kierunek pinu PD5 – wyjściowy<br />PORTD |= LED_PIN;// wyłączenie diody LED<br />DDRE &amp;= ~KEY_PIN;// kierunek pinu PE2 - wejściowy<br />PORTE |= KEY_PIN;// podciągnięcie pinu do VCC<br /><br /><br />while(1){<br />if(!(PINE &amp; (1&lt;&lt;PE2) )){<br />LED_TOG;<br />}<br /><br />}<br />}[/syntax]<br /><br />III możliwość nie działa wogólę:<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#define LED_PIN (DDRD = 0d00100000)<br />#define LED_TOG PORTD ^= LED_PIN<br /><br />#define KEY_PIN (1&lt;&lt;PE2)<br /><br />int main(void)<br />{<br />// ****** inicjalizacja *********<br />DDRD |= LED_PIN;// kierunek pinu PD5 – wyjściowy<br />PORTD |= LED_PIN;// wyłączenie diody LED<br />DDRE &amp;= ~KEY_PIN;// kierunek pinu PE2 - wejściowy<br />PORTE |= KEY_PIN;// podciągnięcie pinu do VCC<br /><br /><br />while(1){<br />if(!(PINE &amp; (1&lt;&lt;PE2) )){<br />LED_TOG;<br />}<br /><br />}<br />}[/syntax]<br /><br />I moje pytanie brzmi. Dlaczego nie mogę ustawić tego portu w sposób binarny ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=858">Elektronik</a> — 19 cze 2014, o 18:16</p><hr />
]]></content>
</entry>
</feed>