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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-05-16T06:55:38+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=46&amp;t=18406&amp;mode</id>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2017-05-16T06:55:38+01:00</updated>
<published>2017-05-16T06:55:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189316#p189316</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189316#p189316"/>
<title type="html"><![CDATA[Re: Konfiguracja peryferiów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189316#p189316"><![CDATA[
<div class="quotetitle">RideorDie napisał(a):</div><div class="quotecontent"><br />Czyli jeżeli wcześniej ustawiłem sobie na pinie 12 w rejestrze MODER portu G wyjście i teraz ustawiam sobie na pinie 13 wyjście w MODER rejestru G to to jak przy drugiej operacji nie zrobię &quot;or&quot; to ustawię na bity w pinie 12 zera tak ? mimo tego że jeden bit miał wartość 1  ?<br /></div><br />Dokładnie tak.<br />Jezeli spojrzysz na zapis binarny.<br />Przy zapisie &quot;=&quot;<br />Lewa strona wyrażenia przyjmie wartość z prawie,<br />Przy zapisie &quot;|=&quot;<br />Do lewej strony zostaną <strong>dopisane</strong> jedynki znajdujące sie z prawej.<br />Oczywiście każdy bit w miejsce swojej wagi (liczysz od prawej. 1,2,4,8,16...)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11549">Daro69</a> — 16 maja 2017, o 06:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[PJS]]></name></author>
<updated>2017-05-15T22:14:10+01:00</updated>
<published>2017-05-15T22:14:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189303#p189303</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189303#p189303"/>
<title type="html"><![CDATA[Re: Konfiguracja peryferiów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189303#p189303"><![CDATA[
<div class="quotetitle">RideorDie napisał(a):</div><div class="quotecontent"><br />I czemu jest tyle pinów rejestrze MODER ? po co mi to ?<br /></div><br />Ponieważ w tym mikrokontrolerze możesz każdą linię (pin, nóżkę) portu G (a także innych portów) ustawić indywidualnie, tzn. pin0 portu może być wejściem, pin1 wyjściem, pin2 mieć funkcję alternatywną (np. wejście analogowe) itd. Możesz prawie dowolnie wszystko ustawić. Dla twojego przykładu port G ma 16 pinów, każdy ma osobne ustawiania wejście/wyjście/alternatywna funkcja, co daje trzy kombinacje, czyli minimalnie potrzeba 2 bitów, by to zakodować, a to dla 16 pinów daje 16*2=32 bity. I tak jest dla każdego portu. Mało tego są też inne rejestry związane z portami. Każdy peryferial (timery, przetworniki itd.) też mają swoje rejestry.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1614">PJS</a> — 15 maja 2017, o 22:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RideorDie]]></name></author>
<updated>2017-05-15T21:46:34+01:00</updated>
<published>2017-05-15T21:46:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189298#p189298</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189298#p189298"/>
<title type="html"><![CDATA[Re: Konfiguracja peryferiów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189298#p189298"><![CDATA[
<div class="quotetitle">Daro69 napisał(a):</div><div class="quotecontent"><br />Dlatego że przy takim zapisie wymusimy zera na pozostałych bitach.<br /></div><br /><br />Czyli jeżeli wcześniej ustawiłem sobie na pinie 12 w rejestrze MODER portu G wyjście i teraz ustawiam sobie na pinie 13 wyjście w MODER rejestru G to to jak przy drugiej operacji nie zrobię &quot;or&quot; to ustawię na bity w pinie 12 zera tak ? mimo tego że jeden bit miał wartość 1  ?<br /><br />I czemu jest tyle pinów rejestrze MODER ? po co mi to ?<br />Jedyne co przychodz mi do głowy to to że dzięki temu mogę np ustawić żeby dany port np. G zachowywał się jako wejście albo jako wyjście jednocześnie mhh ?<br /><br />edit: napisałem ten post nie widząc poprzedniego komentarza, który chyba wyczerpał temat or ;D<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7568">RideorDie</a> — 15 maja 2017, o 21:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[PJS]]></name></author>
<updated>2017-05-15T21:35:44+01:00</updated>
<published>2017-05-15T21:35:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189296#p189296</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189296#p189296"/>
<title type="html"><![CDATA[Re: Konfiguracja peryferiów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189296#p189296"><![CDATA[
<div class="quotetitle">RideorDie napisał(a):</div><div class="quotecontent"><br />GPIOG-&gt;MODER <span style="color: #00BF00">|=</span> (1&lt;&lt;(2*13)) <span style="color: #00BF00">|</span> (1&lt;&lt;(2*14));<br /></div><br />zapis ten jest równoważny z <br />GPIOG-&gt;MODER <span style="color: #00BF00">=</span> (GPIOG-&gt;MODER) <span style="color: #00BF00">|</span> ((1&lt;&lt;(2*13)) <span style="color: #00BF00">|</span> (1&lt;&lt;(2*14)));<br />To taki skrótowy zapis w C.<br /><div class="quotetitle">RideorDie napisał(a):</div><div class="quotecontent"><br />Po MODER mamy pierwsze or [  |=  ] i pomiędzy (1&lt;&lt;(2*13)) i (1&lt;&lt;(2*14)) mamy drugie or [ | ]. Czyli pomimo tego że jest 2x or to wykonuje się tylko jedno or pomiędzy bitami z wyrażenia (1&lt;&lt;(2*13)) i bitami z wyrażenia (1&lt;&lt;(2*14)) -&gt; i zapis wyniku do GPIOG -&gt; MODER tak ?<br /><br />Jeżeli tak, to czemu tego tak nie można zapisać GPIOG-&gt;MODER = (1&lt;&lt;(2*13)) <span style="color: #00BF00">|</span> (1&lt;&lt;(2*14)); chodzi o składnie w C ?<br /></div><br />Nie wykonuje się jedno OR. Przecież pisałem, ale może niezbyt jasno: najpierw jest wyliczana prawa strona po |=, czyli mnożenia, przesunięcia i OR między tymi wartościami. Potem Wartość z MODER jest OR-owana z tym co wyliczone zostało po prawej stronie. I dopiero ten wynik jest zapisywany w MODER. Skrótowy zapis a|=b jest tym samym co a= a|b. Chodzi o to, co już przedpiśca podał, że gdyby zamiast |= było = to wtedy zawartość całego MODER została by zastąpiona wynikiem wyrażenia po prawej stronie, a nam chodzi tylko, aby ustawić bity 26 i 28 bez zmiany pozostałych bitów. Przykładowo, gdyby MODER był 4bitowy o wartości 0101b, i chcielibyśmy ustawić bit jeden (liczymy od zera od prawej, czyli bit drugi od prawej) na wartość 1 to zrobilibyśmy tak MODER |= (1&lt;&lt;1) i wtedy mamy jako wynik zapisany w MODER wartość 0111b. Natomiast gdybyśmy zrobili tak MODER = (1&lt;&lt;1) to wtedy w MODER byłoby 0010b. Jest różnica?<br />I poważnie poczytaj o operacjach bitowych. To podstawa!!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1614">PJS</a> — 15 maja 2017, o 21:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2017-05-15T20:38:05+01:00</updated>
<published>2017-05-15T20:38:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189286#p189286</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189286#p189286"/>
<title type="html"><![CDATA[Re: Konfiguracja peryferiów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189286#p189286"><![CDATA[
Witam,<br />Dlatego że przy takim zapisie wymusimy zera na pozostałych bitach.<br />A tak wpiszemy jedynki tylko w te wpisane. <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=11549">Daro69</a> — 15 maja 2017, o 20:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RideorDie]]></name></author>
<updated>2017-05-15T20:26:55+01:00</updated>
<published>2017-05-15T20:26:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189285#p189285</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189285#p189285"/>
<title type="html"><![CDATA[Re: Konfiguracja peryferiów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189285#p189285"><![CDATA[
<div class="quotetitle">PJS napisał(a):</div><div class="quotecontent"><br />Weź aktualną zawartość (wartość) rejestru MODER dla portu G. Następnie zrób na tym operację logicznego OR [czyli zeruj te bity (na odpowiadających sobie pozycjach), gdzie są jednocześnie zera, a ustaw w pozostałych przypadkach warość 1] z wyliczonym wyrażeniem (1&lt;&lt;(2*13)) | (1&lt;&lt;(2*14))<br /></div><br /><br />Dobra do tego mam pytanie.<br /><br />Mamy coś takiego <br />GPIOG-&gt;MODER <span style="color: #00BF00">|=</span> (1&lt;&lt;(2*13)) <span style="color: #00BF00">|</span> (1&lt;&lt;(2*14));<br /><br />Po MODER mamy pierwsze or [  |=  ] i pomiędzy (1&lt;&lt;(2*13)) i (1&lt;&lt;(2*14)) mamy drugie or [ | ]. Czyli pomimo tego że jest 2x or to wykonuje się tylko jedno or pomiędzy bitami z wyrażenia (1&lt;&lt;(2*13)) i bitami z wyrażenia (1&lt;&lt;(2*14)) -&gt; i zapis wyniku do GPIOG -&gt; MODER tak ?<br /><br />Jeżeli tak, to czemu tego tak nie można zapisać GPIOG-&gt;MODER = (1&lt;&lt;(2*13)) <span style="color: #00BF00">|</span> (1&lt;&lt;(2*14)); chodzi o składnie w C ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7568">RideorDie</a> — 15 maja 2017, o 20:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[PJS]]></name></author>
<updated>2017-05-15T18:28:36+01:00</updated>
<published>2017-05-15T18:28:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189280#p189280</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189280#p189280"/>
<title type="html"><![CDATA[Re: Konfiguracja peryferiów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189280#p189280"><![CDATA[
Widzę, że masz duże braki w podstawach arytmetyki i logiki bitowej i niestety systemach liczb. Musisz sobie to dobrze poznać - zanim weźmiesz się za coś więcej z mikrokontrolerów. To po pierwsze.<br />A  teraz co do linijki:  GPIOG-&gt;MODER |= (1&lt;&lt;(2*13)) | (1&lt;&lt;(2*14));<br />Mam nadzieję, że się nie rąbnę  <img src="https://forum.atnel.pl/images/smilies/icon_cool.gif" alt="8-)" title="Cool" />  Należy rozumieć to tak:<br />Weź aktualną zawartość (wartość) rejestru MODER dla portu G. Następnie zrób na tym operację logicznego OR [czyli zeruj te bity (na odpowiadających sobie pozycjach), gdzie są jednocześnie zera, a ustaw w pozostałych przypadkach warość 1] z wyliczonym wyrażeniem (1&lt;&lt;(2*13)) | (1&lt;&lt;(2*14)).<br />To wyrażenie zaś liczymy następująco:<br />a) najpierw mnożymy 2*13 oraz 2*14 i otrzymujemy 26 i 28 &lt;-są to prawe bity z dwubitowych wartości odpowiedzialnych za konfigurację wejść/wyjść 13 i 14 portu G (lewe bity domyślnie po resecie mikrokontrolera są zerami, więc ich nie trzeba ruszać - stąd wystarcza zapis 2*13 i 2*14). Mamy więc zapis (1&lt;&lt;26) | (1&lt;&lt;28)<br />b) teraz przesuwamy o 26 pozycji 1 i robimy logiczne OR z liczbą z 1 przesuniętą o 28 pozycji. Binarnie wygląda to tak:<br />                                         (0000 0100 0000 0000 0000 0000 0000 0000)b        OR       (0001 0000 0000 0000 0000 0000 0000 0000)b<br />   i otrzymujemy w wyniku binarnie:     (0001 0100 0000 0000 0000 0000 0000 0000)b = 335544320 dziesiętnie = 0x14000000 szesnastkowo<br />c) i teraz wartość rejestru MODER traktujemy logicznym OR z tą liczbą. W Wyniku binarnie będziemy mieli zatem: (xx01 01xx xxxx xxxx xxxx xxxx xxxxx xxxxx)b (x oznacza poprzedni stan bitu, 0 to wartość jaka będzie, gdy rejestr miał stan po resecie, czyli na tych pozycjach były zera - gdyby były jedynki, to będzie tam 1, ale wtedy nie będzie to ustawienie linii portu na wyjście).<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1614">PJS</a> — 15 maja 2017, o 18:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RideorDie]]></name></author>
<updated>2017-05-15T17:31:40+01:00</updated>
<published>2017-05-15T17:31:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189279#p189279</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189279#p189279"/>
<title type="html"><![CDATA[Re: Konfiguracja peryferiów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189279#p189279"><![CDATA[
Wydaje mi się że nie pokręciłem, bo pisząc <div class="quotetitle">RideorDie napisał(a):</div><div class="quotecontent"><br />jak chcę ustawić pin jako wyście to zgodnie z dokumentacja pierwszy bit w tym pinie powinien mieć wartość 1 a drugi 0.<br /></div><br /><br />miałem na myśli pierwszy bit od prawej czyli byłoby to 01, tak jak napisałeś <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Także prosiłbym Cię o delikatne dokładniejsze wyjaśnienie tego, tzn o odpowiedź na moje pytania z postu o 21:51. Dzięki!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7568">RideorDie</a> — 15 maja 2017, o 17:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RideorDie]]></name></author>
<updated>2017-05-14T23:06:34+01:00</updated>
<published>2017-05-14T23:06:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189236#p189236</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189236#p189236"/>
<title type="html"><![CDATA[Re: Konfiguracja peryferiów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189236#p189236"><![CDATA[
Jak byś znalazł czas żeby odpowiedzieć na resztę moich wątpliwości/pytań z postu powyżej to byłbym Ci bardzo wdzięczny.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7568">RideorDie</a> — 14 maja 2017, o 23:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RideorDie]]></name></author>
<updated>2017-05-15T17:32:21+01:00</updated>
<published>2017-05-14T21:51:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189231#p189231</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189231#p189231"/>
<title type="html"><![CDATA[Re: Konfiguracja peryferiów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189231#p189231"><![CDATA[
Ad 1. Nie wiem czy się zgodzę ;c<br /><br />uzasadnienie: jak chcę ustawić pin jako wyście to zgodnie z dokumentacja pierwszy bit w tym pinie powinien mieć wartość 1 a drugi 0.<br /><br />To co teraz napiszę będzie żałosne ale trudno. Dlaczego 0x00000001 ? Co oznacza taki zapis.<br />0x00000001 - to 8 bitowa liczba, czyli może przyjmować wartości 2^8 zgadza się ? a w tym przypadku to po prostu 1.<br />Dlaczego przed liczbą daje się 0x + liczba ?<br /><br />W jakim systemie liczbowym jest to zapisywane w dziesiętnym tak ? bo np. jak sobie debuguje w IDE uVision to w rejestry też wyglądają w ten sposób, czyli np. R0 0x00000008 -&gt; po wpisaniu 0x0008. Czy to oznacza, że rejestry są 8smio bitowe ?<br /><br />Ad 2. Też nie wiem czemu 0x00000004, czy to ma coś wspólnego z tym że na drugi pin to 2^2 .. ?<br /><br />Ad 3. Jeżeli 0x001 przesunę o 2 to będę miał 0x100. Czyli na trzecim bicie będę miał jedynkę, a trzeci bit to jest pierwszy bit drugiego pinu i ustawiam mu jedynkę. Tak samo jak 1 &lt;&lt; 0 to po prostu ustawiam jedynkę na pierwszym bicie, czyli bity w pierwszym pinie wyglądają tak 01.<br /><br />Nie rozumiem do końca punktu 1,2 to i dalsze mi się posypały.<br /><br />Bardzo Cię proszę, czy mógłbyś zejść o poziom niżej i mi to wytłumaczyć.<br />I proszę przeczytaj ten mój bełkot i odnieś się do niego, bardzo chciałbym to zrozumieć a nie mam tyle czasu niestety żeby zagłębiać się w podstawy ;c<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7568">RideorDie</a> — 14 maja 2017, o 21:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RideorDie]]></name></author>
<updated>2017-05-14T16:31:59+01:00</updated>
<published>2017-05-14T16:31:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189205#p189205</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189205#p189205"/>
<title type="html"><![CDATA[Re: Konfiguracja peryferiów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189205#p189205"><![CDATA[
Jasne wszystko rozumiem z tego co jest tam napisane. Tylko mam co do tego pytania które zadałem w poprzednim poście i na które będę wdzięczny jak ktoś mi odpowie <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=7568">RideorDie</a> — 14 maja 2017, o 16:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RideorDie]]></name></author>
<updated>2017-05-14T15:27:56+01:00</updated>
<published>2017-05-14T15:27:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189202#p189202</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189202#p189202"/>
<title type="html"><![CDATA[Re: Konfiguracja peryferiów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189202#p189202"><![CDATA[
Czyli jeżeli np. Chcę podpiąć przycisk do takiego mikrokontrolera, to potrzebuje ustawic sobie taki port jako wejscie.<br />Np. wybieram sobie ze przycisk podepne do portu G. Zatem żeby ustawic go jako wejscie musze zrobic cos takiego:<br /><br />zgodnie z dokumentacja zeby ustawić na wejscie to dwa bity w pinie powinny być ustawione na 0. Powiedzmy ze wybrałem pin 13.<br /><br />Tu dalej nie rozumiem tego zapisu jak to się ustawia. Ok 13 to mój numer pinu, ale ta 1,2 to co to numer bitu ? I co oznacza ta negacja w tym zapisie.<br />GPIOG-&gt;MODER |= (1&lt;&lt;(2*13))<br /><br />Za cholere nie mam pojęcia po co mi te pozostałe piny w MODER. Bo np. MODER ma 16 pinów. Na co mi to jak ja jak coś ustawiam to tylko jeden pin potrzebuje.<br /><br />Rozumiem, że nie ma znaczenia który wybiorę.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7568">RideorDie</a> — 14 maja 2017, o 15:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[michaeleagle]]></name></author>
<updated>2017-05-14T08:59:17+01:00</updated>
<published>2017-05-14T08:59:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189167#p189167</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189167#p189167"/>
<title type="html"><![CDATA[Re: Konfiguracja peryferiów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189167#p189167"><![CDATA[
Żeby nie podsyłać gotowców, prześlę Ci linka, który WSZYSTKO Ci wytłumaczy(jeśli znasz angielski).<br />Zerknąłem na niego i dobrze jest tam to opisane.<br /><br /><!-- m --><a class="postlink" href="http://hertaville.com/stm32f0-gpio-tutorial-part-1.html" >http://hertaville.com/stm32f0-gpio-tutorial-part-1.html</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16396">michaeleagle</a> — 14 maja 2017, o 08:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RideorDie]]></name></author>
<updated>2017-05-13T21:17:17+01:00</updated>
<published>2017-05-13T21:17:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189141#p189141</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189141#p189141"/>
<title type="html"><![CDATA[Konfiguracja peryferiów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18406&amp;p=189141#p189141"><![CDATA[
Bardzo proszę o pomoc w zrozumieniu poniższego kodu. Czytam o tych dziwnych nazwach jak: AHB1ENR, MODER ale dalej za wiele z tego nie rozumiem.<br /><br />[syntax=c]RCC-&gt;AHB1ENR |= ((1&lt;&lt;0) | (1&lt;&lt;6));<br />RCC-&gt;APB1ENR |= (1&lt;&lt;0);   <br /><br />GPIOG-&gt;MODER |= (1&lt;&lt;(2*13)) | (1&lt;&lt;(2*14)); <br />GPIOA-&gt;MODER |= (2&lt;&lt;2*0);<br />GPIOA-&gt;AFR&#91;0&#93; |= (1&lt;&lt;4*0);[/syntax]<br /><br />Rozumiem, że przesunięcie bitowe służy tu do tego, żeby dać jakiś stan na porcie. Np pierwsza linijka ustaw mi stan wysoki na porcie nr 0 i 6 ? Co oznacz ta negacja przed przesunięciem bitowym.<br /><br />Dalej tego: GPIOG-&gt;MODER |= (1&lt;&lt;(2*13)) | (1&lt;&lt;(2*14)); to za nic już nie rozumiem. Co za mnożenie skąd to i dlaczego ...<br /><br />Jak czytać przykładową linijkę (jedną z powyższych) ?<br /><br />Będę wdzięczny za pomoc bo grzebie w internecie ale ciężko cokolwiek pojąć w tej dziwnej architekturze ;(<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7568">RideorDie</a> — 13 maja 2017, o 21:17</p><hr />
]]></content>
</entry>
</feed>