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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-10-22T13:21:06+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=13302&amp;mode</id>
<entry>
<author><name><![CDATA[webcoder5]]></name></author>
<updated>2015-10-22T13:21:06+01:00</updated>
<published>2015-10-22T13:21:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=143129#p143129</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=143129#p143129"/>
<title type="html"><![CDATA[Re: INT0 i obsługa przycisku]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=143129#p143129"><![CDATA[
Nie chce koniecznie używać przycisku w przerwaniu. Po prostu chce sobie zrozumieć obsługę przerwań zewnętrznych. W normalnych programach używam innej techniki do obsługi przycisku.<br /><br />Może nie zrozumieć tyle co poćwiczyć obsługę takowych przerwań. A kod rzeczywiście działa.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10143">webcoder5</a> — 22 paź 2015, o 13:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[anshar]]></name></author>
<updated>2015-10-20T17:47:32+01:00</updated>
<published>2015-10-20T17:47:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142956#p142956</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142956#p142956"/>
<title type="html"><![CDATA[Re: INT0 i obsługa przycisku]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142956#p142956"><![CDATA[
Nie będzie dobrze. Obłsuga przerwania powinna wykonywać się jak najszybciej to możliwe. <br />Widzę, że dalej się upierasz przy obsłudze przycisku na przerwaniu zewnętrznym INT0.<br /><br />Zobacz taki kod:<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br />#define LED (1&lt;&lt;PD0)<br />#define LED_TOG PORTD ^=LED<br />#define KEY (1&lt;&lt;PD2)<br /><br />volatile uint8_t int0_flag;<br />uint16_t key_lock;<br /><br />int main(void) {<br /><br />DDRD |= LED;<br />PORTD |= LED;<br />PORTD |= KEY;<br /><br />MCUCR |= (1 &lt;&lt; ISC01);<br />GICR |= (1 &lt;&lt; INT0);<br /><br />sei();<br /><br />while (1) {<br /><br />if( int0_flag &amp;&amp; !key_lock ) {<br />LED_TOG;<br />key_lock = 1; //1 dla F_CPU=11059200Hz, 50000 dla F_CPU=1MHz <br />int0_flag = 0;<br />}<br />else if(key_lock){<br />int0_flag = 0;<br />key_lock++;<br />}<br /><br />}<br />}<br /><br />ISR(INT0_vect) {<br />int0_flag = 1;<br />}[/syntax]<br /><br />Zwróć uwagę co się dzieje w obłudze przerwania, a co w pętli głównej.<br />Ten kod nie jest godny polecenia, ale działa. <br />Posłuchaj pana Mirka i przeanalizuj kody z bloga. Uwierz tam jest opidane krok po kroku wystarczające do większości programów rozwiązanie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7157">anshar</a> — 20 paź 2015, o 17:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-10-20T17:40:43+01:00</updated>
<published>2015-10-20T17:40:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142951#p142951</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142951#p142951"/>
<title type="html"><![CDATA[Re: INT0 i obsługa przycisku]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142951#p142951"><![CDATA[
matko jedyna - nigdy w życiu takich cyrków nie rób w przerwaniu ... <br /><br />Już podałem ci link ... a ty widzę na upartego brniesz w przepaść<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 20 paź 2015, o 17:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[webcoder5]]></name></author>
<updated>2015-10-20T17:32:48+01:00</updated>
<published>2015-10-20T17:32:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142945#p142945</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142945#p142945"/>
<title type="html"><![CDATA[Re: INT0 i obsługa przycisku]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142945#p142945"><![CDATA[
Poczytałem trochę bloga trochę BB i doszedłem to takich wniosków:<br /><br />[syntax=c]ISR(INT0_vect) {<br /><br />if (!(PIND &amp; (1 &lt;&lt; PD2))) {<br />//_delay_ms(50);<br />if (!Timer1) {<br />Timer1 = 5;<br />if (!(PIND &amp; (1 &lt;&lt; PD2))) {<br />CHANGE;<br />if (!Timer2) {<br />Timer2=3;<br />while(Timer2);<br />}<br /><br />}<br />}<br />}<br />}[/syntax]<br /><br />Działa to dobrze i bez delayow <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=10143">webcoder5</a> — 20 paź 2015, o 17:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-10-20T16:57:06+01:00</updated>
<published>2015-10-20T16:57:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142940#p142940</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142940#p142940"/>
<title type="html"><![CDATA[Re: INT0 i obsługa przycisku]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142940#p142940"><![CDATA[
zaglądaj ty kolego i czytaj sukcesywnie przede wszystkim bloga<br /><br />a poza tym w BB masz pod koniec w kilku rozdziałach timery programowe w różnej postaci<br /><br />funkcja SuperDebounce - chociaż ona może być za ciężka na początek - więc zacznij od tego co na blogu<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 20 paź 2015, o 16:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[webcoder5]]></name></author>
<updated>2015-10-20T16:55:20+01:00</updated>
<published>2015-10-20T16:55:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142939#p142939</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142939#p142939"/>
<title type="html"><![CDATA[Re: INT0 i obsługa przycisku]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142939#p142939"><![CDATA[
Ogarnąłem sprawę ale przy pomoc delayow, trochę mało elegancko. W którym rozdziale w BB są opisane Timery programowe to doczytam bo chcę zrobić to tak, żeby miało ręce i nogi?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10143">webcoder5</a> — 20 paź 2015, o 16:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-10-20T16:53:29+01:00</updated>
<published>2015-10-20T16:53:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142938#p142938</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142938#p142938"/>
<title type="html"><![CDATA[Re: INT0 i obsługa przycisku]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142938#p142938"><![CDATA[
eeeeeh panie panie .... zamiast sięgać do źródeł to .... <br /><br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2012/10/obsuga-klawiszy-drgania-stykow-cd2.html" >http://mirekk36.blogspot.com/2012/10/ob ... w-cd2.html</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 20 paź 2015, o 16:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[webcoder5]]></name></author>
<updated>2015-10-20T15:57:35+01:00</updated>
<published>2015-10-20T15:57:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142931#p142931</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142931#p142931"/>
<title type="html"><![CDATA[Re: INT0 i obsługa przycisku]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142931#p142931"><![CDATA[
Wziąłem go z poradnik o klawiaturze analogowej. W zasadzie istota działania tego kodu jest podobna, tylko wydaje mi się że wymaga jakiejś przeróbki.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10143">webcoder5</a> — 20 paź 2015, o 15:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-10-20T15:47:29+01:00</updated>
<published>2015-10-20T15:47:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142930#p142930</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142930#p142930"/>
<title type="html"><![CDATA[Re: INT0 i obsługa przycisku]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142930#p142930"><![CDATA[
<div class="quotetitle">webcoder5 napisał(a):</div><div class="quotecontent"><br />jak ten kod działa to wiem, tylko nie wiem jak go przerobić do tego konkretnego zastosowania.<br /></div><br />Ale pytam się ... wiesz skąd ten kod jest ? Pytam bo tam są przykłady<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 20 paź 2015, o 15:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[webcoder5]]></name></author>
<updated>2015-10-20T15:40:20+01:00</updated>
<published>2015-10-20T15:40:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142928#p142928</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142928#p142928"/>
<title type="html"><![CDATA[Re: INT0 i obsługa przycisku]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142928#p142928"><![CDATA[
jak ten kod działa to wiem, tylko nie wiem jak go przerobić do tego konkretnego zastosowania.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10143">webcoder5</a> — 20 paź 2015, o 15:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-10-20T15:32:42+01:00</updated>
<published>2015-10-20T15:32:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142925#p142925</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142925#p142925"/>
<title type="html"><![CDATA[Re: INT0 i obsługa przycisku]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142925#p142925"><![CDATA[
<div class="quotetitle">webcoder5 napisał(a):</div><div class="quotecontent"><br />w rzeczywistości dioda się w ogóle nie zapala, więc jakiś inny sposób na obsługę przycisku?<br /></div><br />No a powiedz skąd wziąłeś tą obsługę przycisku którą masz w przerwaniu ?<br /><br />Czy tam skąd ją wziąłeś było to w przerwaniu ? .... Może jednak wrócić do źródła i poczytać dlaczego i jak ten kod ma działać hmm ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 20 paź 2015, o 15:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[webcoder5]]></name></author>
<updated>2015-10-20T15:18:38+01:00</updated>
<published>2015-10-20T15:18:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142923#p142923</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142923#p142923"/>
<title type="html"><![CDATA[Re: INT0 i obsługa przycisku]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142923#p142923"><![CDATA[
w rzeczywistości dioda się w ogóle nie zapala, więc jakiś inny sposób na obsługę przycisku?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10143">webcoder5</a> — 20 paź 2015, o 15:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2015-10-20T15:06:05+01:00</updated>
<published>2015-10-20T15:06:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142921#p142921</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142921#p142921"/>
<title type="html"><![CDATA[Re: INT0 i obsługa przycisku]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142921#p142921"><![CDATA[
Witam<br /><div class="quotetitle">webcoder5 napisał(a):</div><div class="quotecontent"><br />Założenie jest proste naciskając przycisk dioda gaśnie lub się zapala.<br /></div><br />...a w rzeczywistości:..... (?)<br />W.g mnie w przerwaniu nie sprawdza się PIN'u tegoż przerwania, bo jak nastąpiło to znaczy że coś się na nim wydarzyło.<br /><br />Pozdr.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 20 paź 2015, o 15:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[webcoder5]]></name></author>
<updated>2015-10-20T14:44:39+01:00</updated>
<published>2015-10-20T14:44:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142919#p142919</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142919#p142919"/>
<title type="html"><![CDATA[INT0 i obsługa przycisku]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13302&amp;p=142919#p142919"><![CDATA[
Witam,<br />mam mały problem z obsługą przycisku z przerwanie zewnętrznym. <br />Założenie jest proste naciskając przycisk dioda gaśnie lub się zapala.<br />Połączenia sprawdzone są ok. Oto listing<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br />#define LED (1&lt;&lt;PD0)<br />#define CHANGE PORTD ^=LED<br /><br />volatile uint8_t key_lock;<br />ISR(INT0_vect) {<br />if (!(PIND &amp; (1 &lt;&lt; PD2))) {<br />if (key_lock &lt; 10)<br />key_lock++;<br />} else<br />key_lock = 0;<br />if (key_lock == 9)<br />PORTD ^= (1 &lt;&lt; PD0);<br />}<br />int main(void) {<br />DDRD |= LED;<br />PORTD |= LED;<br /><br />MCUCR |= (1 &lt;&lt; ISC01);<br />GICR |= (1 &lt;&lt; INT0);<br /><br />PORTD |= (1 &lt;&lt; PD2);<br /><br />sei();<br />while (1) {<br /><br />}<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10143">webcoder5</a> — 20 paź 2015, o 14:44</p><hr />
]]></content>
</entry>
</feed>