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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2020-03-29T20:18:49+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=42&amp;t=22971&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2020-03-29T20:18:49+01:00</updated>
<published>2020-03-29T20:18:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225699#p225699</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225699#p225699"/>
<title type="html"><![CDATA[Re: Problem ze zrozumieniem Timera]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225699#p225699"><![CDATA[
<div class="quotetitle">mars10 napisał(a):</div><div class="quotecontent"><br />A własnie, że zmienna Timer1 musi być static.<br /></div><br />Ależ co kolega opowiada że MUSI <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> bez sensu - dla tego przykładu nie ma to ŻADNEGO znaczenia a ja podejrzewam, że kolega tak pisze bo albo niestety nie rozumie jak działa ten mechanizm &quot;timera programowego&quot; albo nie do końca rozumie działania specyfikatora static dla zmiennych globalnych. Więc jak coś to dopytaj to chętnie podpowiem - zamiast wprowadzać w błąd kogoś - że tutaj musi być static. Ja tylko podpowiem, że w tym wypadku specyfikator static dla Timer1 może być ale nie musi. A ty jeśli wiesz dlaczego to spróbuj napisać jaka będzie różnica - wtedy może lepiej zrozumiesz jak to działa ok?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 29 mar 2020, o 20:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[auers]]></name></author>
<updated>2020-03-29T19:20:18+01:00</updated>
<published>2020-03-29T19:20:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225696#p225696</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225696#p225696"/>
<title type="html"><![CDATA[Re: Problem ze zrozumieniem Timera]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225696#p225696"><![CDATA[
<div class="quotetitle">mars10 napisał(a):</div><div class="quotecontent"><br />Mirek pisał &quot;<em>mars10 --&gt; tak, ale nie żadne static</em>......&quot;<br />A własnie, że zmienna Timer1 musi być static. Lepiej podczas deklaracji od razu zainicjować ją na 50.<br />Sprawdź, co się stanie jak nie będzie static.  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /></div><br />Tak, jeżeli zmienna Timer1 jest zdefiniowana w przerwaniu to musi to być static.<br />Natomiast jeżeli, tak jak to było wcześniej, czyli jako zmienna globalna to  zamiast static musi być użyty specyfikator volatile.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7806">auers</a> — 29 mar 2020, o 19:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mars10]]></name></author>
<updated>2020-03-29T17:45:48+01:00</updated>
<published>2020-03-29T17:45:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225695#p225695</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225695#p225695"/>
<title type="html"><![CDATA[Re: Problem ze zrozumieniem Timera]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225695#p225695"><![CDATA[
Mirek pisał &quot;<em>mars10 --&gt; tak, ale nie żadne static</em>......&quot;<br />A własnie, że zmienna Timer1 musi być static. Lepiej podczas deklaracji od razu zainicjować ją na 50.<br />Sprawdź, co się stanie jak nie będzie static.  <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=19144">mars10</a> — 29 mar 2020, o 17:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[auers]]></name></author>
<updated>2020-03-29T15:28:33+01:00</updated>
<published>2020-03-29T15:28:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225690#p225690</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225690#p225690"/>
<title type="html"><![CDATA[Re: Problem ze zrozumieniem Timera]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225690#p225690"><![CDATA[
<div class="quotetitle">Szofer napisał(a):</div><div class="quotecontent"><br />Tu wywalenie obsługi diody z przerwania nie ma nic do rzeczy. <br />Możesz to zrobić w przerwaniu i też musi działać.<br /><br />MA do rzeczy bo mryganie diodą było i w petli (potem zakomentowane bo nie swieciła dioda, zapewne) i w przerwaniu także bardziej pwm się robił 50hz,<br /></div><br /><br />No w tym sensie, że trzeba się zdecydować w którym miejscu mrygamy, to tak ma to znaczenie.<br />Albo mrugamy w przerwaniu, albo w pętli głównej.<br />Natomiast samo mryganie w przerwaniu też jest dopuszczalne i musi działać.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 31 minutach ]</span></strong><br /><br /><strong>AKSELINEK</strong><br /><br />Poniżej masz poprawiony kod twojego programu z mruganiem.<br />Sterownie diodą masz w przerwaniu.<br />Uwagi:<br />Jakie masz taktowanie 1Mhz? Przelicz jeszcze raz OCR2. <br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br />#define LEDN (1&lt;&lt;PB3)  // dioda<br /><br />int main( void ) {<br /><br />DDRB|=LEDN;<br /><br />          /* timer2 - konfiguracja silnika timerów programowych */<br />                TCCR2  |= (1&lt;&lt;WGM21);     // tryb pracy CTC<br />                TCCR2  |= (1&lt;&lt;CS22)|(1&lt;&lt;CS21)|(1&lt;&lt;CS20); // preskaler = 1024<br />                OCR2   = 8;              // przerwanie  porównania co 10ms (100Hz)  78<br />                TIMSK  = (1&lt;&lt;OCIE2);      // Odblokowanie przerwania ComareMatch<br /><br />                  sei();  // globalne odblokowanie przerwania<br />     while(1) {};<br />}<br /><br />ISR(TIMER2_COMP_vect) {<br />static int Timer1;<br />        if (Timer1) (--Timer1);<br />        else  {<br />        Timer1=50;<br />        PORTB ^= LEDN;<br />        }<br /><br />  }[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7806">auers</a> — 29 mar 2020, o 15:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Szofer]]></name></author>
<updated>2020-03-29T15:18:07+01:00</updated>
<published>2020-03-29T15:18:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225689#p225689</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225689#p225689"/>
<title type="html"><![CDATA[Re: Problem ze zrozumieniem Timera]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225689#p225689"><![CDATA[
[/quote]<br />Tu wywalenie obsługi diody z przerwania nie ma nic do rzeczy. <br />Możesz to zrobić w przerwaniu i też musi działać.[/quote]<br /><br />MA do rzeczy bo mryganie diodą było i w petli (potem zakomentowane bo nie swieciła dioda, zapewne) i w przerwaniu także bardziej pwm się robił 50hz,<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7664">Szofer</a> — 29 mar 2020, o 15:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[auers]]></name></author>
<updated>2020-03-29T15:00:25+01:00</updated>
<published>2020-03-29T15:00:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225688#p225688</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225688#p225688"/>
<title type="html"><![CDATA[Re: Problem ze zrozumieniem Timera]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225688#p225688"><![CDATA[
^ to operator xor<br />w tym przypadku:<br />sw^=1<br /> to nic innego  jak negacja.<br />Cała ta zabawa z sw jest niepotrzebna można to zrobić prościej od razu na porcie:<br />PORTB ^= LEDN;<br />Czyli negujesz jeden bit na który wskazuje LEDN;<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 6 minutach ]</span></strong><br /><br /><div class="quotetitle">AKSELINEK napisał(a):</div><div class="quotecontent"><br />Kolega Szofer słusznie stwierdził żeby wywalić obsługę diody z przerwania - tak też zrobiłem,  wrzuciłem warunek do pętli głównej też nie poszło.<br /></div><br />Tu wywalenie obsługi diody z przerwania nie ma nic do rzeczy. <br />Możesz to zrobić w przerwaniu i też musi działać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7806">auers</a> — 29 mar 2020, o 15:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[AKSELINEK]]></name></author>
<updated>2020-03-29T12:07:09+01:00</updated>
<published>2020-03-29T12:07:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225682#p225682</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225682#p225682"/>
<title type="html"><![CDATA[Re: Problem ze zrozumieniem Timera]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225682#p225682"><![CDATA[
Dziękuje za zainteresowanie przykładem, wzorowałem się na przykładach z książki więc tam ustawienia zmiennych były poprawne.<br />Kolega Szofer słusznie stwierdził żeby wywalić obsługę diody z przerwania - tak też zrobiłem,  wrzuciłem warunek do pętli głównej też nie poszło.<br />Jednak nie dokładnie  skopiowałem warunek z książki i tu poprawiłem:<br /><br />[syntax=c]if (!Timer1) {<br /><br /><br />    if( !sw )          PORTB |= LEDN;<br />    else               PORTB &amp;= ~LEDN;<br />    sw^=1;<br /><br /><br />           Timer1 =40;<br />            }[/syntax]<br />mylę że zbagatelizowałem w przykładzie działanie zmiennej sw i chyba do końca nie odrobiłem lekcji.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 54 minutyach ]</span></strong><br /><br />Proszę przeanalizujcie czy dobrze rozumuje:<br />Wykonuje się przerwanie co 100 Hz w wykonanym przerwaniu jest stworzona zmienna lokalna n, która zanika po wykonaniu przerwania .<br />Wartość zmiennej globalnej Timer1 jest wpisana do n.<br />Jeśli n jest dodatnie to Timer 1 się zmniejsza o 1 , ale gdy po 40 razach dojdzie do 0 to spełnia się warunek w pętli  if(!Timer1) i w pętli jeśli sw=0 to (!sw)=1 to zapala diodę - czy tak??<br />nie rozumiem natomiast co znaczy sw^=1 ??? ale następnie Timer1 otrzymuje zwiększenie wartości do 40 i sytuacja się cyklicznie powtarza.<br /><br />Podpowiedzcie czy dobrze rozważam czy nie ?????<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18152">AKSELINEK</a> — 29 mar 2020, o 12:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mars10]]></name></author>
<updated>2020-03-28T23:52:18+01:00</updated>
<published>2020-03-28T23:52:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225678#p225678</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225678#p225678"/>
<title type="html"><![CDATA[Re: Problem ze zrozumieniem Timera]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225678#p225678"><![CDATA[
Podstawowe zasady dobrego programu:<br />1. Jeżeli jakaś zmienna jest używana tylko lokalnie wewnątrz funkcji, to nie używaj w tym celu zmiennej globalnej.<br />2. Idealna liczba zmiennych globalnych to zero. <br /><br />Pozdrawiam,<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=19144">mars10</a> — 28 mar 2020, o 23:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[auers]]></name></author>
<updated>2020-03-28T23:47:36+01:00</updated>
<published>2020-03-28T23:47:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225677#p225677</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225677#p225677"/>
<title type="html"><![CDATA[Re: Problem ze zrozumieniem Timera]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225677#p225677"><![CDATA[
<strong>AKSELINEK</strong> <br />Nie widzę definicji zmiennej Timer1. Czy masz przy niej specyfikator <strong>volatile</strong>?<br />Coś pokombinowałeś też z nawiasami {}.<br />ISR(TIMER2_COMP_vect) powinien być poza main().<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7806">auers</a> — 28 mar 2020, o 23:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2020-03-28T23:34:51+01:00</updated>
<published>2020-03-28T23:34:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225676#p225676</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225676#p225676"/>
<title type="html"><![CDATA[Re: Problem ze zrozumieniem Timera]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225676#p225676"><![CDATA[
<div class="quotetitle">mars10 napisał(a):</div><div class="quotecontent"><br />Ale do dobrego stylu programowania należy unikać zmiennych globalnych, które są dostępne dla wszystkich funkcji, a to może prowadzić do błędów.<br /></div><br />No tak ale co to ma wspólnego ze zmienną static uint16_t n; ? w tej procedurze obsługi przerwania - skoro nie jest ona globalna? ... zachowuje się tylko jako globalna w zakresie inicjalizacji właśnie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 28 mar 2020, o 23:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mars10]]></name></author>
<updated>2020-03-28T22:53:31+01:00</updated>
<published>2020-03-28T22:53:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225675#p225675</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225675#p225675"/>
<title type="html"><![CDATA[Re: Problem ze zrozumieniem Timera]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225675#p225675"><![CDATA[
Masz rację Mirku. Zmienne globalne są inicjowane na zero.<br />Ale do dobrego stylu programowania należy unikać zmiennych globalnych, które są dostępne dla wszystkich funkcji, a to może prowadzić do błędów.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=19144">mars10</a> — 28 mar 2020, o 22:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2020-03-28T22:30:09+01:00</updated>
<published>2020-03-28T22:30:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225673#p225673</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225673#p225673"/>
<title type="html"><![CDATA[Re: Problem ze zrozumieniem Timera]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225673#p225673"><![CDATA[
<strong>mars10 </strong>--&gt; tak ale nie żadne static, a gdybyś już nawet dawał specyfikator static <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> to powiedz mi po co przypisujesz wtedy zero ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> toż static powoduje, że masz tę zmienną tak jak globalną czyli inicjalizowaną zerem automatycznie. Tylko zmienne lokalne się inicjalizuje - o ile pierwszą kolejną na niej operacją nie jest właśnie inicializaja jak tutaj<br /><br />[syntax=c]ISR(TIMER2_COMP_vect) {<br /> <br />        uint16_t n;<br /> <br />        n = Timer1;   /* 100Hz Timer */<br />        if (n) Timer1 = --n;[/syntax]<br /><br />więc tak ma pozostać <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> i tak jest NAJLEPIEJ<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 28 mar 2020, o 22:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mars10]]></name></author>
<updated>2020-03-28T22:17:09+01:00</updated>
<published>2020-03-28T22:17:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225672#p225672</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225672#p225672"/>
<title type="html"><![CDATA[Re: Problem ze zrozumieniem Timera]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225672#p225672"><![CDATA[
W ISR oczywiście<br />static uint16_t n = 0;<br /><br />...sorry<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=19144">mars10</a> — 28 mar 2020, o 22:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2020-03-28T22:12:42+01:00</updated>
<published>2020-03-28T22:12:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225671#p225671</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225671#p225671"/>
<title type="html"><![CDATA[Re: Problem ze zrozumieniem Timera]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225671#p225671"><![CDATA[
Panowie mars10 i Szofer - zerknijcie do Bluebooka to zrozumiecie jak działa ten mechanizm w przerwaniu - bo na razie to niestety obaj wymyślacie niestworzone historie na temat tej zmiennej &quot;n&quot; ... a tu akurat ma być tak jak jest <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> — 28 mar 2020, o 22:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mars10]]></name></author>
<updated>2020-03-28T22:12:20+01:00</updated>
<published>2020-03-28T22:12:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225670#p225670</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225670#p225670"/>
<title type="html"><![CDATA[Re: Problem ze zrozumieniem Timera]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225670#p225670"><![CDATA[
Zrób tak:<br />[syntax=c]#define TIMER140<br /><br />volatile uint8_t flaga = 0;<br /><br />int main(void)<br />{<br />DDRB |= PB3;<br />init_timer();<br />sei();<br />while (1)<br />{<br />if (flaga)<br />{<br />flaga = 0;<br />PORTB ^= (1 &lt;&lt; PB3);<br />}<br />}<br /><br />}<br />//----------------------------------------<br />ISR( TIMER2_COMP_vect)<br />{<br /><br />uint16_t n = 0;<br /><br />if (n++ &gt; TIMER1)<br />{<br />flaga = 1;<br />n = 0;<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=19144">mars10</a> — 28 mar 2020, o 22:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Szofer]]></name></author>
<updated>2020-03-28T21:56:39+01:00</updated>
<published>2020-03-28T21:56:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225669#p225669</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225669#p225669"/>
<title type="html"><![CDATA[Re: Problem ze zrozumieniem Timera]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225669#p225669"><![CDATA[
Jak n zadeklarujesz w przerwaniu jakąś wartością np: n=50; to w petli zmieniając timer1=40; jaka wartość n będzie po wykonaniu if-a I ustawieniu timer1=40; i wejsciu w przerwanie?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7664">Szofer</a> — 28 mar 2020, o 21:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mars10]]></name></author>
<updated>2020-03-28T21:15:59+01:00</updated>
<published>2020-03-28T21:15:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225667#p225667</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225667#p225667"/>
<title type="html"><![CDATA[Re: Problem ze zrozumieniem Timera]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225667#p225667"><![CDATA[
Zmienna int16_t powinna być klasy static oraz zainicjowana, a więc static uint16_t n=40;<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 10 minutach ]</span></strong><br /><br />Zmienna static istnieje między wywołaniami funkcji. To znaczy, że stanowi prywatną pamięć funkcji. <br />U ciebie deklaracja uint_16 n; nie wiadomo jaką ma wartość zmienna n i przy kolejnych wywołaniach obsługi przerwania posiada przypadkową wartość.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=19144">mars10</a> — 28 mar 2020, o 21:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[AKSELINEK]]></name></author>
<updated>2020-03-28T21:09:11+01:00</updated>
<published>2020-03-28T21:09:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225666#p225666</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225666#p225666"/>
<title type="html"><![CDATA[Re: Problem ze zrozumieniem Timera]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225666#p225666"><![CDATA[
Wywaliłem obsługę diody z przerwania ...<br />potem:<br />wrzuciłem do pętli głównej<br />[syntax=c]if (!Timer1) {<br />                               PORTB ^= LEDN;<br />                           Timer1 =40;<br />                                        }[/syntax]<br /><br />niestety dalej nie miga ??????<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18152">AKSELINEK</a> — 28 mar 2020, o 21:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Szofer]]></name></author>
<updated>2020-03-28T20:36:13+01:00</updated>
<published>2020-03-28T20:36:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225664#p225664</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225664#p225664"/>
<title type="html"><![CDATA[Re: Problem ze zrozumieniem Timera]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225664#p225664"><![CDATA[
Wywal obsługę diody z przerwania<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7664">Szofer</a> — 28 mar 2020, o 20:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[AKSELINEK]]></name></author>
<updated>2020-03-28T19:48:27+01:00</updated>
<published>2020-03-28T19:48:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225662#p225662</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225662#p225662"/>
<title type="html"><![CDATA[Problem ze zrozumieniem Timera]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22971&amp;p=225662#p225662"><![CDATA[
Witam chciałem w pewnym programie migać diodą za pomocą Timera . W założeniu chciałem by dioda migała co 1 sek .<br />Nie wiem co zrobiłem żele ale dioda mignie parę razy i koniec??<br /><br />Atmega 32 1 MZ trochę ślimak<br /><br />[syntax=c]#define LEDN (1&lt;&lt;PB3)  // dioda<br /><br />int main( void ) {<br /><br />  /* timer2 - konfiguracja silnika timerów programowych */<br />  TCCR2  |= (1&lt;&lt;WGM21);     // tryb pracy CTC<br />  TCCR2  |= (1&lt;&lt;CS22)|(1&lt;&lt;CS21)|(1&lt;&lt;CS20); // preskaler = 1024<br />  OCR2   = 255;              // przerwanie  porównania co 10ms (100Hz)  78<br />  TIMSK  = (1&lt;&lt;OCIE2);      // Odblokowanie przerwania ComareMatch<br /><br />    sei();  // globalne odblokowanie przerwania<br />   while(1) {<br />// ************************************************************<br />   if (!Timer1) {<br />       //PORTB ^= LEDN;<br />           Timer1 =40;<br />           }<br />{<br />}<br />  ISR(TIMER2_COMP_vect) {<br /><br />  uint16_t n;<br />  PORTB ^= LEDN;<br /><br />  n = Timer1;   /* 100Hz Timer */<br />  if (n) Timer1 = --n;<br /><br />  }[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18152">AKSELINEK</a> — 28 mar 2020, o 19:48</p><hr />
]]></content>
</entry>
</feed>