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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-03-12T17:32:19+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=46&amp;t=17813&amp;mode</id>
<entry>
<author><name><![CDATA[bastik]]></name></author>
<updated>2017-03-12T17:32:19+01:00</updated>
<published>2017-03-12T17:32:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17813&amp;p=184730#p184730</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17813&amp;p=184730#p184730"/>
<title type="html"><![CDATA[Re: [Nucleo] Ustawienie rejestru ODR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17813&amp;p=184730#p184730"><![CDATA[
Zgadza się wszystko działa, PB3 i PB4 trzeba by przeciążyć żeby można na nich migać diodami. Ja korzystałem z pinout-u narysowanego na pudełku od Nucleo i to mój błąd <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />. Poniżej kod dla dwóch diod. <br /><br />[syntax=c]#include &quot;stm32f10x.h&quot;<br /><br />int main(void){<br />RCC-&gt;APB2ENR |= RCC_APB2ENR_IOPAEN;      /* uruchomienie portu A */<br />GPIOA-&gt;CRL |= GPIO_CRL_MODE7;                 /* wyjscie push-pull */<br />GPIOA-&gt;CRL &amp;= ~GPIO_CRL_CNF7;<br />RCC-&gt;APB2ENR |= RCC_APB2ENR_IOPBEN;      <br />GPIOB-&gt;CRL |= GPIO_CRL_MODE6;              <br />GPIOB-&gt;CRL &amp;= ~GPIO_CRL_CNF6;<br />volatile uint32_t delay;<br />while(1){<br />        GPIOA-&gt;ODR |= GPIO_ODR_ODR7;<br />GPIOB-&gt;ODR |= GPIO_ODR_ODR6;<br />for(delay = 10000000; delay; delay--){<br />};<br />GPIOA-&gt;ODR &amp;= ~GPIO_ODR_ODR7;<br />GPIOB-&gt;ODR &amp;= ~GPIO_ODR_ODR6;<br />for(delay = 10000000; delay; delay--){<br />};<br />} /* while(1) */<br />} /* main */[/syntax]<br /><br /><a href="https://obrazkiforum.atnel.pl/8145/d1878730063b5acf5f58b6f363b3dd6a.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/8145/d1878730063b5acf5f58b6f363b3dd6a.jpg" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8145">bastik</a> — 12 mar 2017, o 17:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gizmo5418]]></name></author>
<updated>2017-03-08T00:31:46+01:00</updated>
<published>2017-03-08T00:31:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17813&amp;p=184350#p184350</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17813&amp;p=184350#p184350"/>
<title type="html"><![CDATA[Re: [Nucleo] Ustawienie rejestru ODR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17813&amp;p=184350#p184350"><![CDATA[
Witaj,<br /><br />Wklej tu cały kod, bo z takich skrawków będziemy w nieskończoność dyskutować.<br />Ustaw sobie np miganie na PB3 i pokaż jak to zrobiłeś. Pokaż też ten kod, który Ci mruga na innym pinie.<br /><br />Zaglądnij jeszcze na schemat Twojego Nucleo. Ja widzę, że PB3 podpięte jest do wbudowanego programatora - linia <strong>SWO</strong>.<br />PB2 jest wolne, więc Ci mruga<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1967">gizmo5418</a> — 8 mar 2017, o 00:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[bastik]]></name></author>
<updated>2017-03-07T23:43:48+01:00</updated>
<published>2017-03-07T23:43:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17813&amp;p=184345#p184345</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17813&amp;p=184345#p184345"/>
<title type="html"><![CDATA[Re: [Nucleo] Ustawienie rejestru ODR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17813&amp;p=184345#p184345"><![CDATA[
<strong>zoom</strong> nie wiem ile mi zajmie przerobienie tego poradnika w takim tempie  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><strong>gizmo5418</strong> Nie wiem czy dobrze rozumiem, ale tak w RM pisze CNFy i MODEy gdzie y to numer bitu od 0 do 7.<br /><br />[syntax=c]GPIOB-&gt;CRL |= GPIO_CRL_MODE2;<br />GPIOB-&gt;CRL &amp;= ~GPIO_CRL_CNF2;[/syntax] <br /><br />Dioda miga na pinie 2, natomiast jak zmienię wszędzie na 3 lub więcej to dalej cisza, tak, więc jakoś źle rozumiem informacje z RM. <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=8145">bastik</a> — 7 mar 2017, o 23:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gizmo5418]]></name></author>
<updated>2017-03-07T18:47:50+01:00</updated>
<published>2017-03-07T18:47:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17813&amp;p=184283#p184283</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17813&amp;p=184283#p184283"/>
<title type="html"><![CDATA[Re: [Nucleo] Ustawienie rejestru ODR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17813&amp;p=184283#p184283"><![CDATA[
<div class="quotetitle">bastik napisał(a):</div><div class="quotecontent"><br />...<br />[syntax=c]RCC-&gt;APB2ENR = RCC_APB2ENR_IOPBEN;/* uruchomienie portu B */[/syntax]<br />...<br /></div><br /><br />Oj tak nie rób, bo kiedyś będziesz szukał błędów. Jak już, to tak:<br />[syntax=c]RCC-&gt;APB2ENR |= RCC_APB2ENR_IOPBEN;[/syntax]<br /><br />A dlatego, że są tam jeszcze inne bity odpowiedzialne za włączanie peryferiów. Co się stanie jak inne bity będą wcześniej przez jakąś funkcję ustawione ?<br />Co prawda w tym przykładzie nie ma to znaczenia, bo APB2ENR domyślnie  po resecie ma wartość 0.<br /><br />Ustawiając stan na pinach portu można robić to za pomocą rejestrów <strong>BSRR</strong> i <strong>BRR</strong><br />[syntax=c]GPIOB-&gt;BSRR = GPIO_Pin_1  // ustawia 1 na pinie 1<br />GPIOB-&gt;BRR = GPIO_Pin_1      // ustawia 0 na pinie 1[/syntax]<br /><br /><div class="quotetitle">bastik napisał(a):</div><div class="quotecontent"><br />....Jak zmieniam ODR1 na np. ODR2 lub inny to dioda nie działa (oczywiście po przepięciu kabelków na płytce do innego pinu)....<br /></div><br /><br />I nie ma prawa dzialac. Musisz zmienić jeszcze konfigurację pinu w rejestrze <strong>CRL</strong>, <strong>CRH</strong>, na ten, którego będziesz używał....<br />Domyślnie porty po resecie są ustawione jako pływające wejścia. Wpisując więc do rejestru <strong>ODR</strong> wartość dla innego pinu, bez wcześniejszej zmiany konfiguracji dla tego pinu, nie uzyskasz tego co chcesz.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1967">gizmo5418</a> — 7 mar 2017, o 18:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zoom]]></name></author>
<updated>2017-03-07T10:16:13+01:00</updated>
<published>2017-03-07T10:16:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17813&amp;p=184223#p184223</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17813&amp;p=184223#p184223"/>
<title type="html"><![CDATA[Re: [Nucleo] Ustawienie rejestru ODR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17813&amp;p=184223#p184223"><![CDATA[
Po pierwsze masz chyba włączone wyjście typu Open-drain a nie Push-pull. Sprawdź w dokumentacji.<br />Zamiast zapisu GPIO_ODR_ODR1 możesz też użyć GPIO_Pin_1 - choć to nie powinno nic zmienić, bo ostatecznie to dokładnie to samo.<br />Sprawdź połączenia wszystkiego, schemat, bo to dziwnie wygląda.<br />Widzę, że przerabiasz poradnik szczywronka. Dobrze robisz <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=685">zoom</a> — 7 mar 2017, o 10:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[bastik]]></name></author>
<updated>2017-03-07T00:16:12+01:00</updated>
<published>2017-03-07T00:16:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17813&amp;p=184209#p184209</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17813&amp;p=184209#p184209"/>
<title type="html"><![CDATA[[Nucleo] Ustawienie rejestru ODR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17813&amp;p=184209#p184209"><![CDATA[
Witam wszystkich <br /><br />Najprościej ujmując próbuje migać diodą ustawiając odpowiednie rejestry, niby wszystko działa, ale tylko dla portu PB1.<br />[syntax=c]#include &quot;stm32f10x.h&quot;<br /><br />int main(void){<br />RCC-&gt;APB2ENR = RCC_APB2ENR_IOPBEN;/* uruchomienie portu B */<br />GPIOB-&gt;CRL |= GPIO_CRL_MODE1_1;/* wyjscie push-pull */<br />GPIOB-&gt;CRL &amp;= ~GPIO_CRL_CNF1_0;<br />volatile uint32_t delay;<br />while(1){<br />GPIOB-&gt;ODR |= GPIO_ODR_ODR1;<br />for(delay = 1000000; delay; delay--){<br />};<br />GPIOB-&gt;ODR &amp;= ~GPIO_ODR_ODR1;<br />for(delay = 1000000; delay; delay--){<br />};<br />} /* while(1) */<br />} /* main */[/syntax]<br />Jak zmieniam ODR1 na np. ODR2 lub inny to dioda nie działa (oczywiście po przepięciu kabelków na płytce do innego pinu), problem w tym, że nie mam pomysłu gdzie robię błąd. <br />Może wy mi coś doradzicie? <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8145">bastik</a> — 7 mar 2017, o 00:16</p><hr />
]]></content>
</entry>
</feed>