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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-11-06T07:20:09+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=4673&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-11-06T07:20:09+01:00</updated>
<published>2013-11-06T07:20:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4673&amp;p=55609#p55609</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4673&amp;p=55609#p55609"/>
<title type="html"><![CDATA[Re: Obsługa flagi]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4673&amp;p=55609#p55609"><![CDATA[
<div class="quotetitle">sq8dsr napisał(a):</div><div class="quotecontent"><br />Mi chodziło o to, że ustawienie flagi jest jakby czynnością realizowaną sprzętowo, przynajmniej tak je rozumiem.<br />I co się stanie jeśli zbocze wyzwalające pojawi się pomiędzy taktami CPU..<br /></div><br /><br />No sprzętowo ale operacja<br /><br />GIFR |= (1&lt;&lt;INTF0);<br /><br />zostanie w skompilowana w asemblerze do JEDNEJ instrukcji, a to oznacza, że zostanie wykonana właśnie w 1 cyklu - no a to oznacza, że nie może się zdarzyć NIC pomiędzy - bo to co wykonywane w 1 cyklu to właśnie operacja tzw atomowa<br /><br />czyli mamy tu do czynienia TYLKO z możliwością wystąpienia przerwania INT0 <br /><br />1. tuż przed zerowaniem flagi - wtedy właśnie jeśli kolejna operacja skasuje flagę to już to przerwanie NIGDY nie nastąpi<br />2. tuż po zerowaniu flagi - wtedy oczywiście przerwanie może nastąpić<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 6 lis 2013, o 07:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sq8dsr]]></name></author>
<updated>2013-11-06T01:45:32+01:00</updated>
<published>2013-11-06T01:45:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4673&amp;p=55606#p55606</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4673&amp;p=55606#p55606"/>
<title type="html"><![CDATA[Re: Obsługa flagi]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4673&amp;p=55606#p55606"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />ale w czystym asemblerze operacja zerowania flagi jest atmowa czyli trwa w jednym cyklu<br /></div><br />Mi chodziło o to, że ustawienie flagi jest jakby czynnością realizowaną sprzętowo, przynajmniej tak je rozumiem.<br />I co się stanie jeśli zbocze wyzwalające pojawi się pomiędzy taktami CPU..<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1589">sq8dsr</a> — 6 lis 2013, o 01:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-11-04T19:19:13+01:00</updated>
<published>2013-11-04T19:19:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4673&amp;p=55408#p55408</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4673&amp;p=55408#p55408"/>
<title type="html"><![CDATA[Re: Obsługa flagi]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4673&amp;p=55408#p55408"><![CDATA[
<div class="quotetitle">sq8dsr napisał(a):</div><div class="quotecontent"><br />3. zerujemy flagę (wpisujemy jedynkę) a w tym samym takcie CPU pojawia się zdarzenie które znowu ustawia flagę. <br /><br />Czyli proc tak jakby potrafi ustawić te flagę pomiedzy wykonywanymi rozkazami ASM.<br /></div><br /><br />najpierw sprecyzuj o jakim języku piszesz ? Bo pomiędzy takimi dwoma IF'ami w C może się dużo zdarzyć jeśli chodzi o asembler ...<br /><br />ale w czystym asemblerze operacja zerowania flagi jest atmowa czyli trwa w jednym cyklu ... a zatem już chyba sam sobie odpowiesz, że nie może być &quot;w międzyczasie&quot; z tego punktu widzenia <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 4 lis 2013, o 19:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sq8dsr]]></name></author>
<updated>2013-11-04T18:04:16+01:00</updated>
<published>2013-11-04T18:04:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4673&amp;p=55395#p55395</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4673&amp;p=55395#p55395"/>
<title type="html"><![CDATA[Re: Ekstremalnie dokładny RTC ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4673&amp;p=55395#p55395"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />to oczywiście w takie sytuacji procek sam sobie wyzeruje te flagi po wykonaniu przerwania.<br /></div><br />Tak tak, o tym nota wyraźnie wspomina, że po zakończeniu obsługi przerwania flaga jest zerowana. <br /><br />Natomiast ciekawą rzecza jest takie coś. Nie wiem czy dobrze rozumiem.<br /><br />1. zdarzenie ustawiło flagę<br />2. sprawdzamy czy flaga jest ustawiona -&gt; PRAWDA<br />3. zerujemy flagę (wpisujemy jedynkę) a w tym samym takcie CPU pojawia się zdarzenie które znowu ustawia flagę. <br /><br />Czyli proc tak jakby potrafi ustawić te flagę pomiedzy wykonywanymi rozkazami ASM.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1589">sq8dsr</a> — 4 lis 2013, o 18:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-11-04T16:26:17+01:00</updated>
<published>2013-11-04T16:26:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4673&amp;p=55379#p55379</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4673&amp;p=55379#p55379"/>
<title type="html"><![CDATA[Re: Ekstremalnie dokładny RTC ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4673&amp;p=55379#p55379"><![CDATA[
oczywiście że drugi warunek nie będzie spełniony z tego powodu że my ręcznie &quot;NIBY&quot; wpisaliśmy jedynkę <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ... ale ...<br /><br />ale ... jeśli pomiędzy tymi warunkami wystąpi jednak fizycznie przerwanie z jakichś względów to drugi IF może się wykonać ale tylko dlatego że to procek sprzętowo ustawi flagę na JEDEN sygnalizując że jest przerwanie.<br /><br />------------------------------<br /><br />Podsumowując warto jeszcze pamiętać o tym, że jeśli tylko użylibyśmy wektora przerwania ... czyli fizycznej procedury obsługi przerwania po zezwoleniu na nie - to oczywiście w takie sytuacji procek sam sobie wyzeruje te flagi po wykonaniu przerwania.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 4 lis 2013, o 16:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sq8dsr]]></name></author>
<updated>2013-11-04T15:38:17+01:00</updated>
<published>2013-11-04T15:38:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4673&amp;p=55368#p55368</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4673&amp;p=55368#p55368"/>
<title type="html"><![CDATA[Re: Ekstremalnie dokładny RTC ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4673&amp;p=55368#p55368"><![CDATA[
No właśnie, bo jakby aktywna flaga była zerem, to by się ją kasowało jedynką. A tak wpisanie jedynki daje zero w rejestrze. Faktycznie to musi być jakiś wewnętrzny sprzętowy myk. <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1589">sq8dsr</a> — 4 lis 2013, o 15:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-11-04T15:20:18+01:00</updated>
<published>2013-11-04T15:20:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4673&amp;p=55364#p55364</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4673&amp;p=55364#p55364"/>
<title type="html"><![CDATA[Re: Ekstremalnie dokładny RTC ;)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4673&amp;p=55364#p55364"><![CDATA[
<div class="quotetitle">sq8dsr napisał(a):</div><div class="quotecontent"><br />Wiem, że w nocie jest to opisane. Ale jednocześnie jest tam napisane, że po wystąpieniu zdarzenia na pinie (INT0,1,2) flaga ustawia się na jedynkę. A jej skasowanie też polega na wpisaniu jedynki... Nico to dziwne.<br /></div><br /><br />A zobacz jak to jest z Fusebitami w AVR'ach <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> czy też aby przypadkiem nie jakby odwrotnie ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />i właśnie taka sama jakby odwrotna logika obowiązuje praktycznie dla WSZYSTKICH flag w AVR'ach ale i tak pewnie zawsze jak coś sprawdzać sobie to w nocie ...<br /><br />zrobili tak - że TYLKO WPISANIE - JEDYNKI - na pozycję tego bitu flagi - dokonuje tak na prawdę jej wyzerowania.<br /><br />Trzeba to w głowie potraktować sobie jako taki swego rodzaju mechanizm - no bo tak jest w rzeczywistości, <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> pewnie tak tam sobie w środku poustawiali jakieś przerzutniki JK <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> albo inne rejestry przesuwne - że wygodniej im aby wpisać jedynkę - a w efekcie końcowym - jakiś już przerzutnik dalej - dokona skasowania (wyzerowania) tej flagi<br /><br />Jak mówię - zajrzyj sobie do flag  nie tylko przerwań INTx ale do flag przerwań timerów, ADC, komparatora i innych - praktycznie wszędzie to samo<br /><br />na początku też byłem skonsternowany - ale jak już się człowiek przyzwyczai to robi to z pamięci <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 4 lis 2013, o 15:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sq8dsr]]></name></author>
<updated>2013-11-04T14:23:55+01:00</updated>
<published>2013-11-04T14:23:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4673&amp;p=55357#p55357</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4673&amp;p=55357#p55357"/>
<title type="html"><![CDATA[Obsługa flagi]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4673&amp;p=55357#p55357"><![CDATA[
Mirku, małe pytanko odnośnie poradnika.<br />Rozumiem mechanizm sprawdzania flagi sprzętowej od przerwania (ten bez wykonania obsługi przerwania). Ale dlaczego kasowanie flagi odbywa się przez wpisanie jedynki. Wiem, że w nocie jest to opisane. Ale jednocześnie jest tam napisane, że po wystąpieniu zdarzenia na pinie (INT0,1,2) flaga ustawia się na jedynkę. A jej skasowanie też polega na wpisaniu jedynki... Nico to dziwne. <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1589">sq8dsr</a> — 4 lis 2013, o 14:23</p><hr />
]]></content>
</entry>
</feed>