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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-12-31T00:17:34+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=19835&amp;mode</id>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2017-12-31T00:17:34+01:00</updated>
<published>2017-12-31T00:17:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=201317#p201317</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=201317#p201317"/>
<title type="html"><![CDATA[Re: Flagi sprzętowe - prośba o wyjaśnienie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=201317#p201317"><![CDATA[
Przerwanie jak nazwa sama mówi jest to przerwanie wykonywania innych czynności i natychmiastowa reakcja. Więc procedura w przerwaniu jest wywoływana natychmiast. A przy sprawdzaniu flagi reagujesz na zdarzenie zależnie jak masz to oprogramowane w kodzie. Czyli musisz cyklicznie sprawdzać flagę. Nie możesz też zrobić żadnych za długich działań w pętli głównej, bo przecież musisz sprawdzać co chwilę flagę.<br />Jak widzisz przerwania upraszczają programowanie. I są bardzo proste w użyciu, pamiętając tylko by je odpowiednio oprogramować.<br />Dodatkowo przy rzadkich zdarzeniach możesz wchodzić do trybów obniżonego poboru energii a przerwanie Cię z nich budzi. Tego nie zrobisz na flagach.<br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 31 gru 2017, o 00:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Tom277]]></name></author>
<updated>2017-12-30T23:53:04+01:00</updated>
<published>2017-12-30T23:53:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=201316#p201316</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=201316#p201316"/>
<title type="html"><![CDATA[Re: Flagi sprzętowe - prośba o wyjaśnienie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=201316#p201316"><![CDATA[
To jeszcze tylko dopytam.<br />Czy jest różnica (w szybkości kodu, wielkości), jeśli tak to jaka pisząc obsługę przerwania lub samemu sprawdzając flagę?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=548">Tom277</a> — 30 gru 2017, o 23:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[micky]]></name></author>
<updated>2017-12-21T18:02:07+01:00</updated>
<published>2017-12-21T18:02:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=200912#p200912</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=200912#p200912"/>
<title type="html"><![CDATA[Re: Flagi sprzętowe - prośba o wyjaśnienie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=200912#p200912"><![CDATA[
Rskup - bardzo trafne porównanie!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1546">micky</a> — 21 gru 2017, o 18:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mario2015]]></name></author>
<updated>2017-12-21T15:00:45+01:00</updated>
<published>2017-12-21T15:00:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=200904#p200904</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=200904#p200904"/>
<title type="html"><![CDATA[Re: Flagi sprzętowe - prośba o wyjaśnienie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=200904#p200904"><![CDATA[
Dzięki wszystkim za odpowiedzi. O to mi chodziło.<br />Teraz już zrozumiałem o co chodzi z tymi flagami.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8867">mario2015</a> — 21 gru 2017, o 15:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2017-12-21T11:21:40+01:00</updated>
<published>2017-12-21T11:21:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=200898#p200898</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=200898#p200898"/>
<title type="html"><![CDATA[Re: Flagi sprzętowe - prośba o wyjaśnienie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=200898#p200898"><![CDATA[
<div class="quotetitle">mario2015 napisał(a):</div><div class="quotecontent"><br />Czy o to chodzi ?<br /></div><br />Dokładnie tak ... i tak jak wyżej kolega rskup napisał - trzeba zwracać uwagę na to, że jak jest procedura przerwania to flaga jest automatycznie kasowana a jeśli nie - to trzeba ręcznie ją kasować w razie potrzeby<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 21 gru 2017, o 11:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2017-12-21T11:08:28+01:00</updated>
<published>2017-12-21T11:08:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=200897#p200897</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=200897#p200897"/>
<title type="html"><![CDATA[Re: Flagi sprzętowe - prośba o wyjaśnienie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=200897#p200897"><![CDATA[
Mikroprocesor przy spełnieniu warunku przerwania ustawia z automatu flagę sprzętową. Możesz zawsze z niej skorzystać, ale możesz także zaprząść do roboty dalej mikroprocesor i kazać mu przy ustawieniu flagi wywołać twój kod procedury obsługi przerwania. Jak w życiu - jedni wolą co chwila patrzeć na zegarek by wyjść o czasie a inni wolą nastawić budzik i dostać sygnał jak przyjdzie pora by nie musieć się co chwila patrzeć na zegar <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />.<br /><br />Gdy procesor wywołuje procedurę obsługi przerwania to automatycznie kasuje flagi a gdy sam je sprawdzasz, to musisz o ich kasowanie sam dbać.<br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 21 gru 2017, o 11:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mario2015]]></name></author>
<updated>2017-12-21T07:53:48+01:00</updated>
<published>2017-12-21T07:53:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=200892#p200892</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=200892#p200892"/>
<title type="html"><![CDATA[Re: Flagi sprzętowe - prośba o wyjaśnienie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=200892#p200892"><![CDATA[
Dzięki Mirku .<br />Teraz już chyba jestem na właściwym tropie, tzn. rozumiem to tak:<br />Jeśli do obsługi czegoś tam wystarczy mi flaga sprzętowa, to nie potrzebuję <br />pisać procedury przerwania np: ISR (TiMER2_COMP_vect) ...<br />Czy o to chodzi ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8867">mario2015</a> — 21 gru 2017, o 07:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2017-12-21T07:43:10+01:00</updated>
<published>2017-12-21T07:43:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=200891#p200891</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=200891#p200891"/>
<title type="html"><![CDATA[Re: Flagi sprzętowe - prośba o wyjaśnienie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=200891#p200891"><![CDATA[
<div class="quotetitle">mario2015 napisał(a):</div><div class="quotecontent"><br />Jeżeli korzystam tylko z przerwań od timerów np: TIMER1 , to flaga sprzętowa nie jest mi do niczego potrzebna<br /></div><br /><br />A dlaczego nie? to jest dokładnie taki sam mechanizm jak:<br /><br /><div class="quotetitle">mario2015 napisał(a):</div><div class="quotecontent"><br />a jeżeli korzystam z przerwań zewnętrznych, to zamiast pisania procedury obsługi przerwania,<br />mogę użyć flagi sprzętowej w pętli głównej.<br /></div><br /><br />czyli w przypadku Timerów obowiązuje to samo - obojętnie jakie przerwania zresztą zawsze można wykorzystać tylko flagi - bez procedur przerwań jeśli zajdzie taka potrzeba<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 21 gru 2017, o 07:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mario2015]]></name></author>
<updated>2017-12-21T06:54:47+01:00</updated>
<published>2017-12-21T06:54:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=200890#p200890</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=200890#p200890"/>
<title type="html"><![CDATA[Re: Flagi sprzętowe - prośba o wyjaśnienie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=200890#p200890"><![CDATA[
Czyli rozumiem to tak:<br />Jeżeli korzystam tylko z przerwań od timerów np: TIMER1 , to flaga sprzętowa nie jest mi do niczego potrzebna <br />a jeżeli korzystam z przerwań zewnętrznych, to zamiast pisania procedury obsługi przerwania,<br />mogę użyć flagi sprzętowej w pętli głównej.<br />Bardzo dziękuję o wyjaśnienie i jeśli to dobrze zrozumiałem, to uważam że temat zamknięty a jeśli wg. was źle to zrozumiałem,<br />to proszę o cierpliwość i jeszcze jakieś sugestie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8867">mario2015</a> — 21 gru 2017, o 06:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2017-12-20T22:35:51+01:00</updated>
<published>2017-12-20T22:35:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=200884#p200884</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=200884#p200884"/>
<title type="html"><![CDATA[Re: Flagi sprzętowe - prośba o wyjaśnienie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=200884#p200884"><![CDATA[
<div class="quotetitle">mczarny napisał(a):</div><div class="quotecontent"><br />GIFR <span style="color: #FF0000"><strong>|</strong></span>= (1&lt;&lt;INTF0); // uwaga kasujemy przez wpisanie do rejestru &quot;1&quot;<br /></div><br /><br />Niestety tu jest błąd (tak samo w moich wcześniejszych wielu materiałach) ... trzeba tak kasować flagę<br />[syntax=c]GIFR = (1&lt;&lt;INTF0); // uwaga kasujemy przez wpisanie do rejestru &quot;1&quot;[/syntax]<br /><br />to jest bardzo ważna różnica<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 20 gru 2017, o 22:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mczarny]]></name></author>
<updated>2017-12-20T21:06:55+01:00</updated>
<published>2017-12-20T21:06:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=200870#p200870</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=200870#p200870"/>
<title type="html"><![CDATA[Re: Flagi sprzętowe - prośba o wyjaśnienie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=200870#p200870"><![CDATA[
cześć<br />Jeżeli chodzi o Timery to kolega <strong>DarkMajster</strong> ma rację z tym że musisz napisać obsługę przerwania od Timera bo inaczej to program się wysypie.<br />Nie zawsze jednak trzeba pisać obsługę przerwania np:<br />masz coś podłączone pod INT0 - powiedzmy, że jest to jakiś scalak RTC który co sekundę generuje przerwanie<br />konfigurujesz wejście na które przychodzi przerwanie bo to musisz zrobić<br />[syntax=c]PORTD |= (1&lt;&lt;PD2);<br />      MCUCR |= (1&lt;&lt;ISC01)|(1&lt;&lt;ISC00);[/syntax]<br /><br />i zamiast pisać obsługę przerwania korzystasz z flagi sprzętowej którą ustawia procesor<br />[syntax=c]while(1) {<br /><br />if( GIFR &amp; (1&lt;&lt;INTF0) ) {<br /><br />               // tutaj możesz kazać prockowi coś zrobić i wykona się tylko jak flaga GIFR jest &quot;podniesiona&quot;<br /><br />               // na koniec musisz flagę skasować<br /><br />              GIFR |= (1&lt;&lt;INTF0); // uwaga kasujemy przez wpisanie do rejestru &quot;1&quot;[/syntax]<br /><br />no i tak można z innymi flagami<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4651">mczarny</a> — 20 gru 2017, o 21:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[DarkMajster]]></name></author>
<updated>2017-12-20T20:48:28+01:00</updated>
<published>2017-12-20T20:48:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=200866#p200866</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=200866#p200866"/>
<title type="html"><![CDATA[Re: Flagi sprzętowe - prośba o wyjaśnienie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=200866#p200866"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />w którym flaga sprzętowa jest ustawiona na 1 w momencie wystąpienia przerwania od TIMER0 i jest kasowana po wykonaniu tego przerwania<br /></div><br /><br />Jeżeli o to Ci chodzi, to po ustawieniu timer'a żeby wywoływał przerwanie co jakiś czas ( np. tak jak w przykładzie multiplexowania w BB), nie musisz kompletnie się przejmować flagami, procek robi za Ciebie całą robotę,<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17494">DarkMajster</a> — 20 gru 2017, o 20:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mario2015]]></name></author>
<updated>2017-12-20T19:02:35+01:00</updated>
<published>2017-12-20T19:02:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=200861#p200861</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=200861#p200861"/>
<title type="html"><![CDATA[Flagi sprzętowe - prośba o wyjaśnienie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19835&amp;p=200861#p200861"><![CDATA[
Witam wszystkich forumowiczów.<br />Mam problem ze sprzętowymi flagami w ATmega8. Dopiero się uczę programowania w C.<br />Otóż z noty katalogowej wywnioskowałem, że np. dla TMER0 w ATMEGA8 jest rejestr dla flagi sprzętowej o nazwie TIFR.<br />W rejestrze tym jest bit TOV0 , w którym flaga sprzętowa jest ustawiona na 1 w momencie wystąpienia przerwania od TIMER0 i jest kasowana po wykonaniu tego przerwania.<br />Nie wiem czy to dobrze zrozumiałem , ponieważ krucho u mnie z angielskim.<br />Jeżeli jednak dobrze to zrozumiałem, to proszę o wyjaśnienie jak korzystać z tych flag.<br />Wujek google nie pomógł a w BB też nie znalazłem konkretnej odpowiedzi ( chyba, że nie doczytałem albo nie zrozumiałem wszystkiego) .<br />Prosiłbym, żeby mi ktoś wyjaśnił sposób korzystania z tych flag na jakimś prostym przykładzie abym mógł to zrozumieć.<br />Będę bardzo wdzięczny.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8867">mario2015</a> — 20 gru 2017, o 19:02</p><hr />
]]></content>
</entry>
</feed>