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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-01-19T16:29:42+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=5601&amp;mode</id>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2014-01-19T16:29:42+01:00</updated>
<published>2014-01-19T16:29:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5601&amp;p=65657#p65657</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5601&amp;p=65657#p65657"/>
<title type="html"><![CDATA[Re: Jak wystawiać flagę do obsługi przycisku]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5601&amp;p=65657#p65657"><![CDATA[
proszę bardzo , jak widzisz nie jest aż takie skomplikowane jakkolwiek strasznie brzmi<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 19 sty 2014, o 16:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kaka0204]]></name></author>
<updated>2014-01-19T16:27:15+01:00</updated>
<published>2014-01-19T16:27:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5601&amp;p=65656#p65656</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5601&amp;p=65656#p65656"/>
<title type="html"><![CDATA[Re: Jak wystawiać flagę do obsługi przycisku]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5601&amp;p=65656#p65656"><![CDATA[
Ok, dziękuję za wyjaśnienie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=889">kaka0204</a> — 19 sty 2014, o 16:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2014-01-19T15:53:28+01:00</updated>
<published>2014-01-19T15:53:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5601&amp;p=65645#p65645</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5601&amp;p=65645#p65645"/>
<title type="html"><![CDATA[Re: Jak wystawiać flagę do obsługi przycisku]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5601&amp;p=65645#p65645"><![CDATA[
[syntax=c]volatile unsigned char flaga;    // flaga określająca poprzedni stan diody[/syntax]<br /><br />oczywiście gdy nie korzystasz z przerwań stosowanie volatile jest mało stosowne <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />taki mały przykład użycia flagi -- nap do sprawdzenia poprzedniego stanu diody LED<br /><br />[syntax=c]if (bit_kasuj(PINB, 2) &amp;&amp; (flaga==0)) <br />{ <br />   _delay_ms(30); <br />   if (bit_kasuj(PINB, 2)) <br />       { <br />          LED_XOR; <br />          flaga=1; <br />       } <br />} <br />if (bit_ustaw(PINB,2) &amp;&amp; (i==1))<br />{    <br />       _delay_ms(30); <br />       if (bit_ustaw(PINB, 2)) <br />       { <br />          flaga=0; <br />        }<br />}[/syntax]<br /><br /><br />oczywiście przykład trochę z kosmosu i bezsensowny skoro i tak używamy w nim  negacji<br />więc sprawdzanie stanu poprzedniego mija się z celem , ale mniej więcej tak można zastosować flagę <br /><img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> do sprawdzania przycisku czy coś tam <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=58">SunRiver</a> — 19 sty 2014, o 15:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Janadamis]]></name></author>
<updated>2014-01-19T15:48:37+01:00</updated>
<published>2014-01-19T15:48:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5601&amp;p=65644#p65644</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5601&amp;p=65644#p65644"/>
<title type="html"><![CDATA[Re: Jak wystawiać flagę do obsługi przycisku]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5601&amp;p=65644#p65644"><![CDATA[
A co kolega rozumie poprzez wywołanie flagi??<br />To jest zwykła zmienna którą sprawdzasz w if'e jeśli ona wcześniej przyjęła wartość 1 to tutaj się wykona bo warunek będzie spełniony i tyle.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=288">Janadamis</a> — 19 sty 2014, o 15:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kaka0204]]></name></author>
<updated>2014-01-19T15:42:11+01:00</updated>
<published>2014-01-19T15:42:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5601&amp;p=65641#p65641</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5601&amp;p=65641#p65641"/>
<title type="html"><![CDATA[Re: Jak wystawiać flagę do obsługi przycisku]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5601&amp;p=65641#p65641"><![CDATA[
<div class="quotetitle">Zaba napisał(a):</div><div class="quotecontent"><br />ale czy zmienną flaga i cnt masz ze specyfikatorem &quot;volatile&quot; ?<br /></div><br />Tak jest volatile. <br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />A jak ustawiłeś timer?<br /></div><br />To znaczy? Timer pracuje w trybie CTC z prescalerem 1024. Taktowanie wynosi 16MHz.<br /><br /><div class="quotetitle">Janadamis napisał(a):</div><div class="quotecontent"><br />Lepiej skorzystać z delaya bo tam jest pewność ze działa tak samo za każdym razem.<br /></div><br /><br />To chyba będę musiał tak zrobić, jednakże czy mógłby kolega podać jakiś przykład wywoływania flagi?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=889">kaka0204</a> — 19 sty 2014, o 15:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Janadamis]]></name></author>
<updated>2014-01-19T15:36:48+01:00</updated>
<published>2014-01-19T15:36:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5601&amp;p=65639#p65639</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5601&amp;p=65639#p65639"/>
<title type="html"><![CDATA[Re: Jak wystawiać flagę do obsługi przycisku]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5601&amp;p=65639#p65639"><![CDATA[
A jak ustawiłeś timer? jaka częstotliwość taktowania, jaki uC?<br />Po drugie to ty nie wywołujesz flagi tylko sprawdzasz ją w programie głównym. Timer cały czas robi przerwanie i flaga jest ustawiana więc nie ma tu 100% pewności ze timer odmierzy wyznaczony czas. Bo przy wciśnięciu flaga może być równa 1 i zadziała od razu. Lepiej skorzystać z delaya bo tam jest pewność ze działa tak samo za każdym razem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=288">Janadamis</a> — 19 sty 2014, o 15:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zaba]]></name></author>
<updated>2014-01-19T15:28:50+01:00</updated>
<published>2014-01-19T15:28:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5601&amp;p=65636#p65636</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5601&amp;p=65636#p65636"/>
<title type="html"><![CDATA[Re: Jak wystawiać flagę do obsługi przycisku]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5601&amp;p=65636#p65636"><![CDATA[
Nie wiem co masz na myśli pisząc o przerywaniu <br />ale czy zmienną flaga i cnt masz ze specyfikatorem &quot;volatile&quot; ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1044">Zaba</a> — 19 sty 2014, o 15:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ciamciak]]></name></author>
<updated>2014-01-19T15:27:17+01:00</updated>
<published>2014-01-19T15:27:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5601&amp;p=65635#p65635</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5601&amp;p=65635#p65635"/>
<title type="html"><![CDATA[Re: Jak wystawiać flagę do obsługi przycisku]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5601&amp;p=65635#p65635"><![CDATA[
A jak zadeklarowana jest zmienna flaga i cnt?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1254">ciamciak</a> — 19 sty 2014, o 15:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kaka0204]]></name></author>
<updated>2014-01-19T15:15:36+01:00</updated>
<published>2014-01-19T15:15:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5601&amp;p=65629#p65629</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5601&amp;p=65629#p65629"/>
<title type="html"><![CDATA[Jak wystawiać flagę do obsługi przycisku]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5601&amp;p=65629#p65629"><![CDATA[
Witam.<br />Piszę malutki program, w którym trzeba obsługiwać przyciski jako, że nie chcę używać polecenia _delay_ms() to wymyśliłem sobie, że zrobię to w taki sposób:<br /><br />[syntax=c]ISR(TIMER1_COMPB_vect)<br />{<br /><br />cnt++; // inkrementacja zmiennej typu int<br />if (cnt &gt;= 1000) // jesli zmienna cnt jest wieksz, badz rowna 1000<br />{<br />flaga++; // inkrementuj zmienna typu uint8_t<br />cnt = 0; // wyzeruj zmienna cnt<br />}<br />if (flaga &gt; 1 ) // jesli zmienna flaga jest wieksz niz 1 <br />{<br />flaga = 0; // wyzeruj zmienna flaga <br />}<br /><br /><br />}[/syntax]<br /><br /><br />w programie flagę wywołuję tak:<br /><br />[syntax=c]if !(PINB &amp; key1)<br />{<br />if (flaga==1)<br />{<br />if !(PINB &amp; key1)<br />{<br />//instrukcje <br />}<br />}<br />}[/syntax]<br /><br />Jednakże taki sposób nie działa tak jak ja bym chciał (dziwnie &quot;przerywa&quot;)  dlatego, proszę o jakieś przykłady, jak to ma wyglądać. <br />Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=889">kaka0204</a> — 19 sty 2014, o 15:15</p><hr />
]]></content>
</entry>
</feed>