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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-02-23T21:58:07+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=46&amp;t=14630&amp;mode</id>
<entry>
<author><name><![CDATA[matti0010]]></name></author>
<updated>2016-02-23T21:58:07+01:00</updated>
<published>2016-02-23T21:58:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14630&amp;p=154536#p154536</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14630&amp;p=154536#p154536"/>
<title type="html"><![CDATA[Re: STM32F0DISCOVERY - EXTI, zawiesza się uC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14630&amp;p=154536#p154536"><![CDATA[
Już znalazłem błąd dzięki pomocy pewnej osoby. Powinno być EXTI0_1_IRQHandler zamiast EXTI0_1IRQHandler. Byłem pewny że sprawdzałem to dokładnie z tablicą wektorów przerwań i całą resztą... Tak jak pisałem, w ARMach jestem początkującym <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />Niemniej  jednak kod taki muszę poprawić i uporządkować zgodnie z poradą @Krauser. Wiem o co chodzi z tym ustawianiem rejestrów (mniej więcej) lecz jeszcze się gubię. Jednak jest tego sporo więcej niż w takiej ATmega.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5344">matti0010</a> — 23 lut 2016, o 21:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2016-02-23T21:26:06+01:00</updated>
<published>2016-02-23T21:26:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14630&amp;p=154533#p154533</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14630&amp;p=154533#p154533"/>
<title type="html"><![CDATA[Re: STM32F0DISCOVERY - EXTI, zawiesza się uC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14630&amp;p=154533#p154533"><![CDATA[
<div class="quotetitle">matti0010 napisał(a):</div><div class="quotecontent"><br />[syntax=c]GPIOA -&gt; PUPDR &amp;= ~(0x00000001);// PA0[/syntax]<br /></div><br />To nie jest włączenie podciągania. Aby włączyć podciąganie dla PA0 należy ostatnie 2 bity ustawić na 0b01. Rejestr jest wyzerowany po starcie więc wystarczy ustawić tylko ostatni bit na 1 korzystając z operatora |=<br />[syntax=c]GPIOA -&gt; PUPDR |= 0x00000001; //PA0 pull-up[/syntax]<br />Brak podciągania powoduje, że wejście non stop się przełącza.<br />W innych przypadkach też dowiedz się co chcesz zrobić i po prostu zapytaj o każdą czy to jest poprawnie. Jak załapiesz o co chodzi to sam poprawisz swoje błędy. Niektóre z instrukcji w tym programie nie robią nic, a inne raczej nie to co byś chciał<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 23 lut 2016, o 21:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matti0010]]></name></author>
<updated>2016-02-23T20:48:23+01:00</updated>
<published>2016-02-23T20:48:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14630&amp;p=154526#p154526</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14630&amp;p=154526#p154526"/>
<title type="html"><![CDATA[Re: STM32F0DISCOVERY - EXTI, zawiesza się uC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14630&amp;p=154526#p154526"><![CDATA[
Zmieniłem a nawet wyrzuciłem na początek przerwania:<br />[syntax=c]__attribute__((interrupt)) void EXTI0_1IRQHandler(void)<br />{<br />if(EXTI -&gt; PR &amp; EXTI_PR_PR0)<br />{<br />EXTI-&gt;PR=EXTI_PR_PR0;<br />y++;<br />y=y%2;<br />}<br />}[/syntax]<br />lecz to nic nie daje. <br /><br />Debuggerem próbowałem lecz też nic konkretnego nie wykryło. Niestety dopiero w ARMach mam możliwość debuggowania więc też nie jestem z tym zbyt obeznany.<br /><br />Dzięki wielkie że chcesz to sprawdzić <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> jutro mogę odpisać dopiero wieczorem bo niestety wracam po 18.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5344">matti0010</a> — 23 lut 2016, o 20:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matti0010]]></name></author>
<updated>2016-02-23T19:00:15+01:00</updated>
<published>2016-02-23T19:00:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14630&amp;p=154514#p154514</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14630&amp;p=154514#p154514"/>
<title type="html"><![CDATA[STM32F0DISCOVERY - EXTI, zawiesza się uC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14630&amp;p=154514#p154514"><![CDATA[
Witajcie,<br /><br />od dwóch dni próbuję ogarnąć przerwania EXTI  <img src="https://forum.atnel.pl/images/smilies/icon_evil.gif" alt=":evil:" title="Zły" /> Już na to patrzeć nie umie... Gdy naciskam przycisk wszystko się zacina. Działanie programu (docelowe jakie ma być): dioda mruga co sekundę, po wciśnięciu przycisku gaśnie, po ponownym wciśnięciu zaczyna mrugać i tak w kółko. Działa: mruga, po wciśnięciu zostaje w stanie w jakim była podczas wciskania i reszta idzie w diabły... Od razu mówię, przekopałem chyba z kilkaset stron i niejedno forum lecz nadal nie znalazłem rozwiązania. Będę bardzo wdzięczny za pomoc. Program tworzę w System Workbench for STM32. Jestem dopiero początkującym jeżeli chodzi o STM i ARM więc będę wdzięczny za odpowiedzi pisane &quot;jak dla debila&quot;.<br /><br />KOD:<br /><br />[syntax=c]/**<br />  ******************************************************************************<br />  * @file    main.c<br />  * @author  Ac6<br />  * @version V1.0<br />  * @date    01-December-2013<br />  * @brief   Default main function.<br />  ******************************************************************************<br />*/<br /><br /><br />#include &quot;stm32f0xx.h&quot;<br />#include &quot;stm32f0_discovery.h&quot;<br /><br />volatile uint8_t x=0;<br />volatile uint8_t y=0;<br />int main(void)<br />{<br />RCC -&gt; AHBENR |= RCC_AHBENR_GPIOCEN|RCC_AHBENR_GPIOAEN;// port C i A<br />/////////////////////// przerwania zewnętrzne ///////////////////////////<br />RCC -&gt; APB2ENR |= RCC_APB2ENR_SYSCFGEN;// odblokowanie dla przerwań zewnętrznych EXTI<br />//RCC -&gt; APB2RSTR = RCC_APB2RSTR_SYSCFGRST;// odblokowanie dla przerwań zewnętrznych EXTI<br />SYSCFG -&gt; EXTICR&#91;0&#93; = SYSCFG_EXTICR1_EXTI0_PA;// PB11<br />EXTI -&gt; IMR |= EXTI_IMR_MR0;// maskuje które przerwania odpaliliśmy (numer)<br />EXTI -&gt; RTSR |= EXTI_RTSR_TR0;// działa na zbocze narastające<br />EXTI -&gt; PR = 0xFFFFF;//kasowanie wszystkich flag<br />/////////////////////// przerwania zewnętrzne ///////////////////////////<br /><br />/////////////////////// ustawianie PA0 ////////////////////////////<br />GPIOA -&gt; MODER |= 0x00000000;// PA0, wejście z podciągnięciem pull-up<br />GPIOA -&gt; PUPDR &amp;= ~(0x00000001);// PA0<br />/////////////////////// ustawianie PA0////////////////////////////<br /><br />/////////////////////// ustawianie PC0////////////////////////////////////<br />GPIOC -&gt; MODER |= 0x00000001;// PC0, wyjście z diodą<br />GPIOC -&gt; OTYPER &amp;= ~0x00000000;// PC0<br />GPIOC -&gt; OSPEEDR |= 0x00000000;// PC0<br />GPIOC -&gt; PUPDR &amp;= ~0x00000001;// PC0<br />/////////////////////// ustawianie PC0////////////////////////////////////<br /><br />SysTick_Config(8000000);<br />NVIC_EnableIRQ(EXTI0_1_IRQn);//odblokowanie NVIC przerwań<br />for(;;);<br />}<br /><br />__attribute__((interrupt)) void EXTI0_1IRQHandler(void)<br />{<br />if((EXTI -&gt; PR) &amp; EXTI_PR_PR0)<br />{<br />y++;<br />y=y%2;<br />}<br />EXTI-&gt;PR|=EXTI_PR_PR0;<br />}<br /><br />__attribute__((interrupt)) void SysTick_Handler(void)<br />{<br />if(y==0)<br />{<br />GPIOC -&gt; BRR = 0x0001;<br />x++;<br />x=x%2;<br />GPIOC -&gt; BSRR = x;<br />}<br />else if (y==1)<br />{<br />GPIOC -&gt; BRR = 0x0001;<br />}<br />}[/syntax]<br /><br />W załączniku daję plik .rar z całym projektem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5344">matti0010</a> — 23 lut 2016, o 19:00</p><hr />
]]></content>
</entry>
</feed>