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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-11-23T12:06:40+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=9365&amp;mode</id>
<entry>
<author><name><![CDATA[gardziej]]></name></author>
<updated>2014-11-23T12:06:40+01:00</updated>
<published>2014-11-23T12:06:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105569#p105569</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105569#p105569"/>
<title type="html"><![CDATA[Re: Regulacja czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105569#p105569"><![CDATA[
Możesz potraktować to tak, tylko że pamiętaj, że mamy licznik1 uint8_t, czyli może przyjmować zakres od 0 do 255, więc jeśli będziesz chciał na tej podstawie wyłapać dłuższy czas niż 255*10ms, to licznik1 będzie za mały. Dlatego też wprowadziłem sekundę. <br /><br />Możesz też wyświetlać dowolną zmienną na LCD, zobacz w BB rozdział o wyświetlaczu LCD, biblioteka Pana Mirka jest dosyć prosta w użytkowaniu, musisz ją zainkludować i w prosty sposób za pomocą funkcji &quot;lcd_int&quot; możesz umieszczać je na wyświetlaczu. Pamiętaj przy KEY_DOWN, żeby obsłużyć jeszcze drgania styków klawiszy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6104">gardziej</a> — 23 lis 2014, o 12:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[varaderas]]></name></author>
<updated>2014-11-23T01:40:58+01:00</updated>
<published>2014-11-23T01:40:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105546#p105546</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105546#p105546"/>
<title type="html"><![CDATA[Re: Regulacja czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105546#p105546"><![CDATA[
[syntax=c]/*<br /> * main.c<br /> *  <br /> *  F_CPU 8MHz<br /> *  MCU Atmega8    <br /> */<br /> <br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /> <br />//zmienne flagi<br />//z przydomkiem volatile bo będą używane w przerwaniu i<br />//w pętli głównej<br />volatile uint8_t flaga1, flaga2;<br /> <br />int main(void)<br />{<br />        //PD6 i PD7 jako wyjścia<br />        DDRD |= (1&lt;&lt;PD6) | (1&lt;&lt;PD7);<br /> <br />        //konfiguracja Timera2, tryb CTC, przerwanie co 10ms<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  = 78;                                                         // przerwanie co 10ms - 100Hz<br />    TIMSK  = (1&lt;&lt;OCIE2);                                                // odblokowanie przerwania CompareMatch<br /> <br />    sei();              //globalne odblokowanie przerwań<br /> <br />        while(1)<br />        {<br />                if(flaga1 == 1)         //jeśli flaga1 ustawiona<br />                {                                       //czyli minęła 1 sekunda<br />                        flaga1 = 0;<br />                        PORTD ^= (1&lt;&lt;PD6);              //zmień stan diody LED na przeciwny<br />                }<br /> <br />                if(flaga2 == 1)<br />                {<br />                        flaga2 = 0;<br />                        PORTD ^= (1&lt;&lt;PD7);<br />                }<br />        }<br />}<br /> <br />//przerwanie Timer2 CompareMatch<br />ISR(TIMER2_COMP_vect)<br />{<br />        //zmienne do odliczania czasu<br />        static uint8_t licznik1, licznik2;<br /> <br />        licznik1++;                     //co 10ms zwiększ licznik1<br />        if(licznik1 &gt; 100)      //jeśli minęła 1 sekunda<br />        {<br />                licznik1 = 0;<br />                flaga1 = 1;             //ustaw flagę1<br />        }<br /> <br />        licznik2++;<br />        if(licznik2 &gt; 50)<br />        {<br />                licznik2 = 0;<br />                flaga2 = 1;<br />        }<br />}[/syntax]Bo początkowo widziałem to tak aby w kodzie w fragmencie : [syntax=c]if(licznik1 &gt; 100)      //jeśli minęła 1 sekunda[/syntax] potraktować tą 100 jako jakąś zmienną np. [syntax=c]if (licznik1&gt; pomocnicza)[/syntax] a wartość tej pomocniczej zadwać za pomocą przycisku i wyświetlać na lcd da się tak to zrobić? Już kolego gardziej patrze i analizuję Twój kod <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 21 minutach ]</span></strong><br /><br />Albo na podobnej zasadzie jak zrobić żeby te sekundy móc zadawać za pomoca switch i wyswietlac na lcd<br />jak robię że liczbę sekund zastępuję np. zmienną &quot;a&quot; i:<br /><br />if (KEY_DOWN)<br />{<br />a=a+10 ;<br />}<br />to na wyświetlaczu te sekundy inkrementują mi się w pętli co 10<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6283">varaderas</a> — 23 lis 2014, o 01:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gardziej]]></name></author>
<updated>2014-11-23T01:30:54+01:00</updated>
<published>2014-11-23T01:30:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105545#p105545</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105545#p105545"/>
<title type="html"><![CDATA[Re: Regulacja czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105545#p105545"><![CDATA[
[syntax=c]/*<br />     * main.c<br />     *<br />     *  F_CPU 8MHz<br />     *  MCU Atmega8<br />     */<br /><br />    #include &lt;avr/io.h&gt;<br />    #include &lt;avr/interrupt.h&gt;<br /><br />    //zmienne flagi<br />    //z przydomkiem volatile bo będą używane w przerwaniu i<br />    //w pętli głównej<br />    volatile uint8_t flaga1;<br /><br />    //zmienne do odliczania czasu<br />    uint8_t licznik1, sekundy;<br /><br />    int main(void)<br />    {<br />//PD6 jako wyjście<br />DDRD |= (1&lt;&lt;PD6);<br />PORTD |= (1&lt;&lt;PD6); // zapalamy diodę<br /><br />            //konfiguracja Timera2, tryb CTC, przerwanie co 10ms<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  = 78;                                                         // przerwanie co 10ms - 100Hz<br />        TIMSK  = (1&lt;&lt;OCIE2);                                                // odblokowanie przerwania CompareMatch<br /><br />        sei();              //globalne odblokowanie przerwań<br /><br />            while(1)<br />            {<br />                    if(flaga1 == 1)                         //jeśli flaga ustawiona<br />                    {                                                       //czyli co 10ms<br />                            flaga1 = 0;<br />                            licznik1++;                             //zwiększ wartość licznika1<br />                            if(licznik1 &gt; 100)              //jeśli licznik1 większy niż sto<br />                            {                                               //czyli minęła 1 sekunda (100x10ms)<br />                                    licznik1 = 0;<br />                                    sekundy++;// zwiększamy licznik sekund<br />                            }<br />                            if (sekundy &gt;= 120)<br />                            {<br />                            PORTD &amp;= ~(1&lt;&lt;PD6);// gasimy diodę gdy miną 120 sekundy<br />                            }<br />                    }<br /><br />            }<br />    }<br /><br />    //przerwanie Timer2 CompareMatch<br />    ISR(TIMER2_COMP_vect)<br />    {<br />            //co 10ms ustaw flagi<br />            flaga1 = 1;<br />    }[/syntax]<br /><br />Z przykładu, za każdym razem gdy jest przerwanie, czyli mija 10ms, ustawiamy flaga1 = 1, w pętli głównej gdy flaga1 = 1 zwiększamy  licznik1, gdy  licznik1 ma wartość 100 to mija jedna sekunda i wtedy zwiększamy zmienną sekundy, gdy sekundy = 120 wyłączamy diodę (minęły dwie minuty). Mam nadzieję, że pomogłem, jak coś to pytaj.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6104">gardziej</a> — 23 lis 2014, o 01:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[varaderas]]></name></author>
<updated>2014-11-23T00:52:40+01:00</updated>
<published>2014-11-23T00:52:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105540#p105540</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105540#p105540"/>
<title type="html"><![CDATA[Re: Regulacja czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105540#p105540"><![CDATA[
Panowie podpowiecie jak zrobić by ustawić ta diodę z powyższego programu od kolegi jacekk232 by świeciła np. przez 2 minuty a potem się wyłączyła na stałe? <br />Męczę się z tym cały dzień i normalnie oczy już wypływają i nie mogę tego zrobić za cholewkę..<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6283">varaderas</a> — 23 lis 2014, o 00:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[OdeOn]]></name></author>
<updated>2014-11-22T20:58:34+01:00</updated>
<published>2014-11-22T20:58:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105518#p105518</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105518#p105518"/>
<title type="html"><![CDATA[Re: Regulacja czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105518#p105518"><![CDATA[
Można też dołożyć układ czasu rzeczywistego RTC np. PCF8583 i sprawdzać czas na nim.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1407">OdeOn</a> — 22 lis 2014, o 20:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[varaderas]]></name></author>
<updated>2014-11-22T09:35:52+01:00</updated>
<published>2014-11-22T09:35:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105451#p105451</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105451#p105451"/>
<title type="html"><![CDATA[Re: Regulacja czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105451#p105451"><![CDATA[
Dziękuję wam Panowie z całego serca ! Zaraz biorę się dalej za BB i poraz kolejny oglądanie poradnika i analizę powyższych kodów. <br />Przykład z pociągiem jest świetny, już teraz wiem co to jest ta flaga i inaczej na to mogę patrzeć analizując np. czyjeś kody. <br />Czas do nauki, jak coś będę pisał, pozdrawiam wszystkich ! <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=6283">varaderas</a> — 22 lis 2014, o 09:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2014-11-22T00:57:45+01:00</updated>
<published>2014-11-22T00:57:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105439#p105439</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105439#p105439"/>
<title type="html"><![CDATA[Re: Regulacja czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105439#p105439"><![CDATA[
Przeanalizuj sobie poniższe proste programiki.<br />Użyłem w nich przerwania od Timera2 i flag do migania dwoma diodami<br /><br />[syntax=c]/*<br /> * main.c<br /> *  <br /> *  F_CPU 8MHz<br /> *  MCU Atmega8    <br /> */<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br />//zmienne flagi<br />//z przydomkiem volatile bo będą używane w przerwaniu i<br />//w pętli głównej<br />volatile uint8_t flaga1, flaga2;<br /><br />//zmienne do odliczania czasu<br />uint8_t licznik1, licznik2;<br /><br />int main(void)<br />{<br />//PD6 i PD7 jako wyjścia<br />DDRD |= (1&lt;&lt;PD6) | (1&lt;&lt;PD7);<br /><br />//konfiguracja Timera2, tryb CTC, przerwanie co 10ms<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  = 78;                     // przerwanie co 10ms - 100Hz<br />    TIMSK  = (1&lt;&lt;OCIE2);              // odblokowanie przerwania CompareMatch<br /><br />    sei();//globalne odblokowanie przerwań<br /><br />while(1)<br />{<br />if(flaga1 == 1)//jeśli flaga ustawiona<br />{//czyli co 10ms<br />flaga1 = 0;<br />licznik1++;//zwiększ wartość licznika1<br />if(licznik1 &gt; 100)//jeśli licznik1 większy niż sto<br />{//czyli minęła 1 sekunda (100x10ms)<br />licznik1 = 0;<br />PORTD ^= (1&lt;&lt;PD6);//zmień stan diody na przeciwny<br />}<br />}<br /><br />//analogicznie jak ww. przykład<br />//odliczanie 0.25 sekundy<br />if(flaga2 == 1)<br />{<br />flaga2 = 0;<br />licznik2++;<br />if(licznik2 &gt; 25)<br />{<br />licznik2 = 0;<br />PORTD ^= (1&lt;&lt;PD7);<br />}<br />}<br />}<br />}<br /><br />//przerwanie Timer2 CompareMatch<br />ISR(TIMER2_COMP_vect)<br />{<br />//co 10ms ustaw flagi<br />flaga1 = 1;<br />flaga2 = 1;<br />}[/syntax]<br /><br />[syntax=c]/*<br /> * main.c<br /> *  <br /> *  F_CPU 8MHz<br /> *  MCU Atmega8    <br /> */<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br />//zmienne flagi<br />//z przydomkiem volatile bo będą używane w przerwaniu i<br />//w pętli głównej<br />volatile uint8_t flaga1, flaga2;<br /><br />int main(void)<br />{<br />//PD6 i PD7 jako wyjścia<br />DDRD |= (1&lt;&lt;PD6) | (1&lt;&lt;PD7);<br /><br />//konfiguracja Timera2, tryb CTC, przerwanie co 10ms<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  = 78;                     // przerwanie co 10ms - 100Hz<br />    TIMSK  = (1&lt;&lt;OCIE2);              // odblokowanie przerwania CompareMatch<br /><br />    sei();//globalne odblokowanie przerwań<br /><br />while(1)<br />{<br />if(flaga1 == 1)//jeśli flaga1 ustawiona<br />{//czyli minęła 1 sekunda<br />flaga1 = 0;<br />PORTD ^= (1&lt;&lt;PD6);//zmień stan diody LED na przeciwny<br />}<br /><br />if(flaga2 == 1)<br />{<br />flaga2 = 0;<br />PORTD ^= (1&lt;&lt;PD7);<br />}<br />}<br />}<br /><br />//przerwanie Timer2 CompareMatch<br />ISR(TIMER2_COMP_vect)<br />{<br />//zmienne do odliczania czasu<br />static uint8_t licznik1, licznik2;<br /><br />licznik1++;//co 10ms zwiększ licznik1<br />if(licznik1 &gt; 100)//jeśli minęła 1 sekunda<br />{<br />licznik1 = 0;<br />flaga1 = 1;//ustaw flagę1<br />}<br /><br />licznik2++;<br />if(licznik2 &gt; 50)<br />{<br />licznik2 = 0;<br />flaga2 = 1;<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 22 lis 2014, o 00:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[j23]]></name></author>
<updated>2014-11-21T23:23:23+01:00</updated>
<published>2014-11-21T23:23:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105421#p105421</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105421#p105421"/>
<title type="html"><![CDATA[Re: Regulacja czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105421#p105421"><![CDATA[
<div class="quotetitle">varaderas napisał(a):</div><div class="quotecontent"><br />tak jak kolego @gardziej mówisz i niestety albo stety jutro od rana dalej walka z przerwaniami, a wyjaśniłby mi ktoś jakoś w skrócie o co chodzi z tymi flagami ?(...)<br /></div><br />Flagi traktuj jak zwykłe zmienne, bo to są zwykłe zmienne, tylko że nazwa &quot;flaga&quot; wzięła się <span style="text-decoration: underline">od celu</span> stosowania tej zmiennej (jej funkcjonalności). Mianowicie taka zmienia powiadamia część sterującą programem/algorytmem (moduł konfiguracyjno-sterujący, nie wiem jak to nazwać) jaki jest dany stan programu i w oparciu o wartość tej zmiennej jakaś instrukcja sterowania programem jest wykonywana, lub nie (w Twoim przypadku, albo wykonywane jest przerwanie, albo nie - w oparciu czy nastąpiła odpowiednia ilość &quot;tyknięć&quot; zmiennej). Flagę możesz porównać do takiego semafora kolejowego, który przyjmuje dwie wartości i w zależności od tego czy jest światło czerwone czy zielone steruje ruchem kolejowym (żeby nie nastąpiła kolizja dwóch pociągów). Sorry, za takie łopatologiczne tłumaczenie.<br /><br />Pozdrawiam! j23 Jarek<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4504">j23</a> — 21 lis 2014, o 23:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gardziej]]></name></author>
<updated>2014-11-21T22:14:46+01:00</updated>
<published>2014-11-21T22:14:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105406#p105406</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105406#p105406"/>
<title type="html"><![CDATA[Re: Regulacja czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105406#p105406"><![CDATA[
Ależ wcale mi o to nie chodziło <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />, chciałem jedynie zasugerować, żeby póki co kolega nie dostawiał nowych elementów na płytce stykowej, póki nie opanuje tego co się w samym kontrolerze dzieje.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6104">gardziej</a> — 21 lis 2014, o 22:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gardziej]]></name></author>
<updated>2014-11-21T22:07:12+01:00</updated>
<published>2014-11-21T22:07:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105401#p105401</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105401#p105401"/>
<title type="html"><![CDATA[Re: Regulacja czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105401#p105401"><![CDATA[
Panie Antystatyczny, kolega varaderas przeczytał BB, oglądnął poradniki i nie może załapać podstawowych rzeczy więc próbuje mu pokazać najprostszą drogę do nauki zrozumienia tego, jak w ogóle działa timer.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6104">gardziej</a> — 21 lis 2014, o 22:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2014-11-21T22:06:00+01:00</updated>
<published>2014-11-21T22:06:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105399#p105399</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105399#p105399"/>
<title type="html"><![CDATA[Re: Regulacja czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105399#p105399"><![CDATA[
<div class="quotetitle">varaderas napisał(a):</div><div class="quotecontent"><br />Panowie a podpowiecie coś odnośnie tych flag? Kiedy je używamy jak i po co, może jakiś prosty kod bym zobaczył na przykładzie fizycznym.<br /></div><br />Taki fajny kod już jest <img src="https://forum.atnel.pl/images/smilies/icon_exclaim.gif" alt=":!:" title="Wykrzyknik" /> <br />Weź w łapki swojego BB i poczytaj rozdział o 1Wire. Mam książkę w twardej oprawie i specjalnie dla Ciebie<br />znalazłem to na stronie 324 <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br />Trzeba czytać, czytać, czytać... <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=189">MirkoT</a> — 21 lis 2014, o 22:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gardziej]]></name></author>
<updated>2014-11-21T21:58:44+01:00</updated>
<published>2014-11-21T21:58:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105396#p105396</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105396#p105396"/>
<title type="html"><![CDATA[Re: Regulacja czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105396#p105396"><![CDATA[
Wewnętrzny jest mniej dokładny, ale do celów nauki nie ma tutaj większej różnicy i nie baw się póki co w zewnętrzne kwarce, póki nie robisz np. zegarka.<br />Flaga to po prostu ustawienie jakiegoś bita na 0 lub 1. Mikrokontroler sprawdza flagę, flaga wywieszona (=1) to coś robię, niewywieszona nie robię.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br />Lub w drugą stronę, występuje np. przerwanie,  mikrokontroler ustawia flagę konkretną, czyli ustawia 1 w jakimś bicie i Ty wiesz, że właśnie takie przerwanie miało miejsce.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6104">gardziej</a> — 21 lis 2014, o 21:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[varaderas]]></name></author>
<updated>2014-11-21T21:56:44+01:00</updated>
<published>2014-11-21T21:56:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105395#p105395</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105395#p105395"/>
<title type="html"><![CDATA[Re: Regulacja czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105395#p105395"><![CDATA[
więc mogę to zrobić by zliczał mi co minutę  ( może co sekundę i zrobię sobię jakąś operację typu: minuta=60*c)  bez zewnętrznego kwarcu tak?<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br />Panowie a podpowiecie coś odnośnie tych flag? Kiedy je używamy jak i po co, może jakiś prosty kod bym zobaczył na przykładzie fizycznym.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6283">varaderas</a> — 21 lis 2014, o 21:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[varaderas]]></name></author>
<updated>2014-11-21T21:50:09+01:00</updated>
<published>2014-11-21T21:50:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105391#p105391</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105391#p105391"/>
<title type="html"><![CDATA[Re: Regulacja czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105391#p105391"><![CDATA[
tak jak kolego @gardziej mówisz i niestety albo stety jutro od rana dalej walka z przerwaniami, a wyjaśniłby mi ktoś jakoś w skrócie o co chodzi z tymi flagami ?<br />Tak ale jak dołożę, zewnętrzny kwarc to wydaję mi się, że może mi program głupieć bo on jest ustawiony dla 8MHz.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6283">varaderas</a> — 21 lis 2014, o 21:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gardziej]]></name></author>
<updated>2014-11-21T21:44:16+01:00</updated>
<published>2014-11-21T21:44:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105387#p105387</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105387#p105387"/>
<title type="html"><![CDATA[Re: Regulacja czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105387#p105387"><![CDATA[
Kolego, jak Ci delaye nie pasują to musisz zrozumieć timery, bo się opcje kończą. Wpisz w google &quot;atmega8 timer0&quot; i zobacz najprostsze tutoriale obrazujące jak wyliczyć sekundę, po tym jak zrozumiesz to sobie i te 15 minut policzysz, innego wyjścia nie ma.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6104">gardziej</a> — 21 lis 2014, o 21:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[varaderas]]></name></author>
<updated>2014-11-21T21:42:25+01:00</updated>
<published>2014-11-21T21:42:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105385#p105385</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105385#p105385"/>
<title type="html"><![CDATA[Re: Regulacja czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105385#p105385"><![CDATA[
Ten poradnik oglądałem 3 razy <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> i co najgorsze w sumie większość rozumiem a i tak lipka ale widocznie muszę obejrzeć raz jeszcze. A jak w mkAVR kalkulator wyliczyć te wartości ( co ile ma tykać timerek) ? Jest jakiś film do tego? Przyznaje bez bicia ze w bb nie czytałem w ogóle o tym programie<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6283">varaderas</a> — 21 lis 2014, o 21:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2014-11-21T21:38:05+01:00</updated>
<published>2014-11-21T21:38:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105384#p105384</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105384#p105384"/>
<title type="html"><![CDATA[Re: Regulacja czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105384#p105384"><![CDATA[
W takim razie bardzo polecam ten poradnik.<br /><br /><a href="http://mirekk36.blogspot.com/2013/12/przerwania-okiem-poczatkujacego.html"  class="postlink">http://mirekk36.blogspot.com/2013/12/przerwania-okiem-poczatkujacego.html</a><br />Nie ma co odpuszczać <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /> <br />Rozumiem, że wszystko jest trudne nim stanie się proste. (a w każdym razie łatwiejsze  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> )<br />Jest dokładnie tak jak mówisz. Te delaye Ci zatrzymają cały program na czas ustawienia portu<br />Dlatego bez przerwań się tego zrobić nie da <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":-(" title="Smutny" /><br />O konfiguracji poczytaj w rozdziale o multipleksowaniu.<br />Natomiast wyliczenie wartości zrobi Ci MKAVRkalkulator - wspaniałe narzędzie <img src="https://forum.atnel.pl/images/smilies/icon_exclaim.gif" alt=":!:" title="Wykrzyknik" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 21 lis 2014, o 21:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[varaderas]]></name></author>
<updated>2014-11-21T21:31:02+01:00</updated>
<published>2014-11-21T21:31:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105381#p105381</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105381#p105381"/>
<title type="html"><![CDATA[Re: Regulacja czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105381#p105381"><![CDATA[
Rozumiem zasadę działania tego programu tylko w nim są te _delaye_ i to może mi skrzaczyć działanie reszty programu i tego się obawiam.<br />Niestety dopiero od niedawna bawię się z AVRAMI i wiem, że kiedyś będę się śmiał z tych przerwań ale one niestety bardzo trapią początkujących, kolega też jakiś czas temu zaczął i mówi, że odpuszcza bo nie daje rady z tymi przerwaniami. <br />Ja własnie nie wiem jak ustawić ten timer by tykał co 10 ms bo w bb czytałem pare razy o tych przerwaniach i 3 razy film p. Mirka oglądalem i nie wiem jak to ustawić..<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br />Jeszcze kolejnej rzeczy której nie ogarniam a której Pan Mirek nie tłumaczy ( jeszcze nie oglądałem filmów o strukturach) to są te flagi. Byłby ktoś w jakiś prosty sposób napisać mi co to jest i może poprzeć jakimś przykładowym kodem gdzieś z zacisza domowego workspace'a ;D<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 3 minutach ]</span></strong><br /><br />Pan Mirek nie tłumaczy to może zbyt wielkie słowo za co przepraszam ale uważam, ze na prawdę mało o tym jest a to często się powtarza i nie wiem w jakim celu ustawia się ta flagę, po co zeruje itd.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6283">varaderas</a> — 21 lis 2014, o 21:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jarecki]]></name></author>
<updated>2014-11-21T21:30:01+01:00</updated>
<published>2014-11-21T21:30:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105380#p105380</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105380#p105380"/>
<title type="html"><![CDATA[Re: Regulacja czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105380#p105380"><![CDATA[
Kolega MirkoT słusznie zauważył że brakuje #include &lt;avr/io.h&gt;<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2511">Jarecki</a> — 21 lis 2014, o 21:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2014-11-21T21:27:10+01:00</updated>
<published>2014-11-21T21:27:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105377#p105377</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105377#p105377"/>
<title type="html"><![CDATA[Re: Regulacja czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105377#p105377"><![CDATA[
brakuje jeszcze jednego includa<br />no i żebyś się nie zdziwił, że ten kod wykona się tylko raz i na tym koniec <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><br /><br />Przerwania to nic strasznego. Na prawdę.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 21 lis 2014, o 21:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jarecki]]></name></author>
<updated>2014-11-21T21:25:59+01:00</updated>
<published>2014-11-21T21:25:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105376#p105376</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105376#p105376"/>
<title type="html"><![CDATA[Re: Regulacja czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105376#p105376"><![CDATA[
Nie jest trudno i na pewno sobie poradzisz ale pobaw się z tym kodem co Ci wysłałem spróbuj go trochę zmienić, wrzucić do pętli głównej while. Zresztą w BB na początku są tego typu proste przykłady i opisane jak obsługiwać przyciski. Dla chcącego nic trudnego <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> w pętli for wykonuje się 900 razy opóżnienie około 1s. minuta ma 60s. 900/60=15 minut<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2511">Jarecki</a> — 21 lis 2014, o 21:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[varaderas]]></name></author>
<updated>2014-11-21T21:20:00+01:00</updated>
<published>2014-11-21T21:20:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105374#p105374</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105374#p105374"/>
<title type="html"><![CDATA[Re: Regulacja czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105374#p105374"><![CDATA[
Dziękuję bardzo i widzę, że da się to zrobić bez przerwań bo niestety narazie tego staram się unikać bo nie do końca to rozumiem.. <br />A żeby dodać regulację zmiennej i w postaci minut to ogólnie trudno jest to napisać? Jutro od rana będę z tym walczył <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br />Dodam dodatkowo, że modernizuję sobie program wytrawiarki kolegi z naszego forum i chcę abym mógł ustawić czas działania napowietrzacza <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=6283">varaderas</a> — 21 lis 2014, o 21:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jarecki]]></name></author>
<updated>2014-11-21T21:16:13+01:00</updated>
<published>2014-11-21T21:16:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105372#p105372</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105372#p105372"/>
<title type="html"><![CDATA[Re: Regulacja czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105372#p105372"><![CDATA[
w C to masz coś takiego na przykład:<br />[syntax=c]#include &lt;util/delay.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br /><br />#define LED_PIN (1&lt;&lt;PB0)// definicja pinu do którego //podłączona jest dioda<br /><br />int main(void){<br /><br />DDRB |= LED_PIN;<br />PORTB&amp;=~LED_PIN;<br />           PORTB|=LED_PIN;<br /><br />for(uint16_t i=0; i&lt;900;i++){<br />_delay_ms(1000);<br />}<br /><br /><br />       PORTB&amp;=~LED_PIN;<br /><br />while(1){<br /><br />}<br />}[/syntax]<br />Pisane z głowy. tam gdzie jest 900 w pętli for wklejasz dowolną wartość. 900 jest dla 15 min. ale to jest że tak powiem &quot;jednorazowe wysterowanie&quot; bo nie jest to w petli głównej while. Tylko żebyś sobie zobaczył jak ma mniej więcej wyglądac kod<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 3 minutach ]</span></strong><br /><br />A jak przyciskami chcesz to regulować to trzeba rozbudować kod ale może to co napisałem choć trochę Cię naprowadzi<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2511">Jarecki</a> — 21 lis 2014, o 21:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[varaderas]]></name></author>
<updated>2014-11-21T21:13:20+01:00</updated>
<published>2014-11-21T21:13:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105371#p105371</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105371#p105371"/>
<title type="html"><![CDATA[Re: Regulacja czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105371#p105371"><![CDATA[
korzystam z Atmegi 8 a regulacja przyciskami, coś widzę, że to chyba może być całkiem trudne zadanie...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6283">varaderas</a> — 21 lis 2014, o 21:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2014-11-21T21:12:30+01:00</updated>
<published>2014-11-21T21:12:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105370#p105370</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105370#p105370"/>
<title type="html"><![CDATA[Re: Regulacja czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9365&amp;p=105370#p105370"><![CDATA[
Możesz to zrobić np. tak:<br />ustawiasz timer na tyknięcia co 10ms<br />W przerwaniu zliczasz tyknięcia i gdy doliczysz do 100 ustawiasz flagę sekunda<br /><br />W pętli głównej sprawdzasz czy flaga jest ustawiona<br />jeśli tak to:<br />   zmniejszasz ilość sekund jaka pozostała do wyłączenia linii    // jedna minuta to 60 sek. <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><br />   sprawdzasz czy ilość sekund osiągnęła wartość 0<br />      Jeżeli tak to wyłączasz linię<br />   zerujesz flagę sekund<br /><br />Ot i cały program <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><br />Oczywiście ilość minut przeliczanych na sekundy ustawiasz albo w czasie kompilacji      // bleeee<br />Albo... tu już co Ci podpowie wyobraźnia: np. przez pilota IR, przyciskami, przez RS232... itd, itp.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 21 lis 2014, o 21:12</p><hr />
]]></content>
</entry>
</feed>