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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-06-26T14:18:26+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=18681&amp;mode</id>
<entry>
<author><name><![CDATA[riddik]]></name></author>
<updated>2017-06-26T14:18:26+01:00</updated>
<published>2017-06-26T14:18:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18681&amp;p=191271#p191271</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18681&amp;p=191271#p191271"/>
<title type="html"><![CDATA[Re: jedna zmienna w Timerze i w pętli głównej.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18681&amp;p=191271#p191271"><![CDATA[
Samo volatile dla zmiennej globalnej zdaje się nie gwarantuje jednoznaczności uzyskanej wartości. Istotne jest jak danej zmiennej się używa w kodzie. Brak jest konkretu użycia tej zmiennej w pętli głównej i w przerwaniu, być może jeszcze gdzieś. Atrybut volatile oznacza ni mniej ni więcej jak wyłączenie optymalizacji przez kompilator sposobu dostępu do wartości zmiennej (np. nie odczytywanie wartości z rejestrów w czasie operacji ). Dla zmiennych uint8_t na procesorach 8bit może to wystarczyć. Jednak co do zasady dostęp do zmiennych wykorzystywanych w przerwaniach i w pętli głównej powinien być zamykany w operację atomową (ATOMIC_BLOCK). Oczywiście każdorazowo istotna jest konkretna sytuacja, wielkość zmiennej (ilość zajmowanych bitów), rodzaj procesora (8bit, 32bit) etc. Ten temat jest szczegółowo opisywany ale często również spłaszczany wyłącznie do użycia volatile jako działania wystarczającego a to niekoniecznie musi prawda.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16099">riddik</a> — 26 cze 2017, o 14:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mczarny]]></name></author>
<updated>2017-06-24T09:57:37+01:00</updated>
<published>2017-06-24T09:57:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18681&amp;p=191167#p191167</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18681&amp;p=191167#p191167"/>
<title type="html"><![CDATA[Re: jedna zmienna w Timerze i w pętli głównej.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18681&amp;p=191167#p191167"><![CDATA[
Jeżeli zadeklarujesz ją z przedrostkiem &quot;Volatile&quot; to robisz to tylko raz przed funkcją main<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4651">mczarny</a> — 24 cze 2017, o 09:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wojciechgorzolka]]></name></author>
<updated>2017-06-24T09:34:22+01:00</updated>
<published>2017-06-24T09:34:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18681&amp;p=191166#p191166</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18681&amp;p=191166#p191166"/>
<title type="html"><![CDATA[Re: jedna zmienna w Timerze i w pętli głównej.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18681&amp;p=191166#p191166"><![CDATA[
ok, a czy wystarczy ,że ją zdeklaruję nad<br /><br />[syntax=c]int main(void)[/syntax]<br /><br />czy w Timerze też ją powinienem zdeklarować?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14082">wojciechgorzolka</a> — 24 cze 2017, o 09:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jarecki]]></name></author>
<updated>2017-06-24T09:23:19+01:00</updated>
<published>2017-06-24T09:23:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18681&amp;p=191165#p191165</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18681&amp;p=191165#p191165"/>
<title type="html"><![CDATA[Re: jedna zmienna w Timerze i w pętli głównej.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18681&amp;p=191165#p191165"><![CDATA[
Tak tylko musi być opatrzona specydfikatorem volatile.<br />[syntax=c]volatile uint8_t miganie = 1;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2511">Jarecki</a> — 24 cze 2017, o 09:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wojciechgorzolka]]></name></author>
<updated>2017-06-24T09:02:18+01:00</updated>
<published>2017-06-24T09:02:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18681&amp;p=191163#p191163</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18681&amp;p=191163#p191163"/>
<title type="html"><![CDATA[jedna zmienna w Timerze i w pętli głównej.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18681&amp;p=191163#p191163"><![CDATA[
Witam.<br /><br />Czy jeśli powołam sobie jedną zmienną i będę jej przypisywać różne wartości np 0 , 1, 2. i będę chciał przy jej pomocy obsługiwać miganie diody i obsługę klawisza, to czy będzie Ona widziana w pętli głównej, oraz w Timerze?<br /><br />np. zmienna <br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &quot;LCD/lcd44780.h&quot;<br /><br /><br /><br /><br /><br />uint8_t miganie = 1;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14082">wojciechgorzolka</a> — 24 cze 2017, o 09:02</p><hr />
]]></content>
</entry>
</feed>