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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-12-22T08:11:20+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=13952&amp;mode</id>
<entry>
<author><name><![CDATA[Vroobee]]></name></author>
<updated>2015-12-22T08:11:20+01:00</updated>
<published>2015-12-22T08:11:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148682#p148682</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148682#p148682"/>
<title type="html"><![CDATA[Re: Problem ze switchem i przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148682#p148682"><![CDATA[
Ok <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /> okazało się że zmiana prescalera pomogła <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /> dzieki za pomoc <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":-D" title="Bardzo szczęśliwy" /> <br /><br />Wysłane z mojego D5503 przy użyciu Tapatalka<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5942">Vroobee</a> — 22 gru 2015, o 08:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gonzicz]]></name></author>
<updated>2015-12-21T20:49:44+01:00</updated>
<published>2015-12-21T20:49:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148654#p148654</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148654#p148654"/>
<title type="html"><![CDATA[Re: Problem ze switchem i przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148654#p148654"><![CDATA[
<div class="quotetitle">Vroobee napisał(a):</div><div class="quotecontent"><br /> timer = 0;<br /></div><br />Tu niepotrzebnie zerujesz zmienną &quot;timer&quot; Ten &quot;sw&quot; to pozostałości po starym kodzie <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> można go usunąć.<br /> <div class="quotetitle">Vroobee napisał(a):</div><div class="quotecontent"><br />if (!timer){<br /></div><br />jeśli timer jest równy zero (przeładuje się) to wykonaj polecenie.<br />Głębszy opis znajdzesz oglądają filmik od około 42 min <!-- m --><a class="postlink" href="https://www.youtube.com/watch?v=V83w0pu7MVo" >https://www.youtube.com/watch?v=V83w0pu7MVo</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11908">gonzicz</a> — 21 gru 2015, o 20:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Vroobee]]></name></author>
<updated>2015-12-21T18:38:35+01:00</updated>
<published>2015-12-21T18:38:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148647#p148647</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148647#p148647"/>
<title type="html"><![CDATA[Re: Problem ze switchem i przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148647#p148647"><![CDATA[
Wiem, wyłącze fuse bitami, żeby działał jako zwykły IO, ale najpierw muszę mieć gotowy program <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Swoją drogą teraz po podłączeniu zasilania 3V dziwne rzeczy się dzieją <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5942">Vroobee</a> — 21 gru 2015, o 18:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2015-12-21T18:34:51+01:00</updated>
<published>2015-12-21T18:34:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148646#p148646</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148646#p148646"/>
<title type="html"><![CDATA[Re: Problem ze switchem i przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148646#p148646"><![CDATA[
Witam<br />Może poza tematem ale<br /><div class="quotetitle">Vroobee napisał(a):</div><div class="quotecontent"><br />DDRB|=(1&lt;&lt;5);<br /></div><br />tam ATtiny13 posiada RESET<br /><br />Pozdr.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 21 gru 2015, o 18:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Vroobee]]></name></author>
<updated>2015-12-21T18:26:25+01:00</updated>
<published>2015-12-21T18:26:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148642#p148642</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148642#p148642"/>
<title type="html"><![CDATA[Re: Problem ze switchem i przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148642#p148642"><![CDATA[
Szczerze powiedziawszy to mam problem. Kod niby ten sam no ale nie chce działać.<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br />#define KEY0 (1&lt;&lt;PB0)<br /><br />uint16_t key_lock=0;<br />uint8_t i=0;<br />volatile uint16_t timer;<br />uint16_t sw=0,n=0;<br /><br />int przycisk(void);<br /><br />ISR(TIM0_COMPA_vect)<br />{<br />n=timer;<br />if (n){<br />timer=--n;<br />}<br />}<br /><br />int main (void)<br />{<br />DDRB|=(1&lt;&lt;3);<br />DDRB|=(1&lt;&lt;4);<br />DDRB|=(1&lt;&lt;5);<br />DDRB&amp;=~(1&lt;&lt;0);<br /><br />PORTB |= (1&lt;&lt;PB0);<br /><br />TCCR0A |=(1&lt;&lt;WGM01);<br />TCCR0B |=(1&lt;&lt;CS02)|(1&lt;&lt;CS01)|(1&lt;&lt;CS00);<br />OCR0A = 78;<br />TIMSK0 = (1&lt;&lt;OCIE0A);<br />sei();<br /><br />while (1)<br />{<br />przycisk();<br />switch(i){<br />case 0:{<br />PORTB&amp;=~(1&lt;&lt;3);<br />break;<br />}<br />case 1:{<br />PORTB|=(1&lt;&lt;3);<br />break;<br />}<br />case 2:{<br />if (!timer){<br />if (!sw){<br />PORTB^=(1&lt;&lt;3);<br />}<br />sw^=1;<br />timer=50;<br />}<br />break;<br />}<br />}<br />}<br />}<br /><br />int przycisk (void)<br />{<br />        if ( !key_lock &amp;&amp; !(PINB &amp; KEY0))<br />        {<br />                key_lock = 55000;<br />                if (i&lt;2) {<br />                 i++;<br />                }<br />                else {<br />                 i=0;<br />                 timer = 0;<br />                }<br />        }<br />        else if (key_lock &amp;&amp; (PINB &amp; KEY0))<br />        { key_lock++;}<br />        return i;<br />}[/syntax]<br /><br />Swoją drogą nie rozumiem dlaczego w case 2 są te negacje timer i sw.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5942">Vroobee</a> — 21 gru 2015, o 18:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[APAP75]]></name></author>
<updated>2015-12-21T17:17:50+01:00</updated>
<published>2015-12-21T17:17:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148637#p148637</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148637#p148637"/>
<title type="html"><![CDATA[Re: Problem ze switchem i przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148637#p148637"><![CDATA[
<img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> gonzicz - dzięki.<br />Sprytne to   <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6195">APAP75</a> — 21 gru 2015, o 17:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Vroobee]]></name></author>
<updated>2015-12-21T17:15:45+01:00</updated>
<published>2015-12-21T17:15:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148636#p148636</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148636#p148636"/>
<title type="html"><![CDATA[Re: Problem ze switchem i przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148636#p148636"><![CDATA[
Ja to robię na ATtiny13 więc trochę muszę poprzerabiać <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> ale wielkie dzięki za pomoc<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5942">Vroobee</a> — 21 gru 2015, o 17:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gonzicz]]></name></author>
<updated>2015-12-21T17:10:25+01:00</updated>
<published>2015-12-21T17:10:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148635#p148635</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148635#p148635"/>
<title type="html"><![CDATA[Re: Problem ze switchem i przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148635#p148635"><![CDATA[
[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 21 gru 2015<br /> *      Author: Rafal Lewandowski<br /> */<br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br />#define KEY0 (1&lt;&lt;PB0)<br /><br />uint16_t key_lock=0;<br />uint8_t i=0;<br /><br />volatile uint16_t Timer1; //nasz programowy Timer<br />uint16_t sw=0; // nasz przełącznik<br /><br />int przycisk(void); //deklaracja funkcji wciśnięcia przycisku<br /><br />int main (void)<br />{<br /><br />// *******KONFIGURACJA TIMERA*****************<br />    TCCR2 |=(1&lt;&lt;WGM21);<br />TCCR2 |=(1&lt;&lt;CS22)|(1&lt;&lt;CS21)|(1&lt;&lt;CS20);<br />OCR2 = 78;<br />TIMSK = (1&lt;&lt;OCIE2);<br />    sei();//pozwolenie na glogalne przerwania<br /><br /><br />        //IO<br />        DDRB|=(1&lt;&lt;3);   //LEDy<br />        DDRB|=(1&lt;&lt;4);<br />        DDRB|=(1&lt;&lt;5);<br />        DDRB|=(1&lt;&lt;7);<br />        DDRB&amp;=~(1&lt;&lt;0); //przycisk<br /><br />        PORTB |= (1&lt;&lt;PB0); //podciągnięcie przycisku do VCC<br />       <br />        while (1)<br />        {<br />                przycisk();<br />                switch (i)<br />                {     //zmiana trybu świecenia<br />                case 0:<br />                {<br />                PORTB&amp;=~(1&lt;&lt;3); //diody wyłączone<br />                                PORTB&amp;=~(1&lt;&lt;4);<br />                                PORTB&amp;=~(1&lt;&lt;5);<br />                                break;<br />                     }<br />                case 1:<br />                {<br />                                PORTB|=(1&lt;&lt;3);  //diody włączone<br />                                PORTB|=(1&lt;&lt;4);<br />                                PORTB|=(1&lt;&lt;5);<br />                                break;<br />                     }<br />                case 2:<br />                {<br />                if(!Timer1)<br />                {<br />                if (!sw)<br /><br />                {<br /><br />                PORTB^=(1&lt;&lt;3);  //diody migają<br />                PORTB^=(1&lt;&lt;4);<br />                PORTB^=(1&lt;&lt;5);<br />                }<br />               sw ^=1;<br />           Timer1 = 50 ; //500 * 1 ms= okoł pół sekundy<br />                }<br />                                break;<br />                    }<br /><br />                }<br />        }<br />}<br />int przycisk (void)    //definicja funkcji przycisku<br />{<br />        if ( !key_lock &amp;&amp; !(PINB &amp; KEY0))<br />        {<br />                key_lock = 55000;<br />                DDRB^=(1&lt;&lt;7); // Kontrola czy przycisk działa<br />                <br />                if (i&lt;2)<br />                {       //jeśli i &lt; 3<br />                 i++;    //to zwiększaj i<br />                }<br />                else<br />                {<br />                 i=0;    //w przeciwnym razie i =0<br />                }<br /><br />        }<br />        else if (key_lock &amp;&amp; (PINB &amp; KEY0))<br />        { key_lock++;}<br /><br />        return i;<br />}<br /><br />//****************** OBSŁUGA PRZERWANIA***************<br />ISR(TIMER2_COMP_vect)<br />{<br />uint16_t n;<br />n = Timer1;<br />if(n) Timer1 = --n;<br />}[/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br />Testowałem to na ATmega32 ale na AT8 też powinno działać bo rejestry są takie same. Cieszę się, że mogłem pomóc <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11908">gonzicz</a> — 21 gru 2015, o 17:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Vroobee]]></name></author>
<updated>2015-12-21T17:07:00+01:00</updated>
<published>2015-12-21T17:07:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148634#p148634</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148634#p148634"/>
<title type="html"><![CDATA[Re: Problem ze switchem i przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148634#p148634"><![CDATA[
Żeby wkleić kod musisz w pełnym edytorze rozwinąć listę &quot;Syntax wybierz&quot; i wybrać C. Pomiędzy &quot;{syntax=c]...[/syntax}&quot; wstawiasz kod.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: kilkunastu sekundach ]</span></strong><br /><br />Też pomyślałem właśnie żeby to zrobić na Timerze, bo wszelaka opcja delay'a nie działa.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br />Możesz spróbować jeszcze przesłać mi kod w prywatnej wiadomości jak nie uda Ci się na forum <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5942">Vroobee</a> — 21 gru 2015, o 17:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gonzicz]]></name></author>
<updated>2015-12-21T17:04:52+01:00</updated>
<published>2015-12-21T17:04:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148633#p148633</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148633#p148633"/>
<title type="html"><![CDATA[Re: Problem ze switchem i przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148633#p148633"><![CDATA[
Vroobee &quot;poprawiłem&quot; (troszeczkę za duże to słowo) Twój kod i działa, tylko nie wiem jak wklejać treść programu na forum. Nie podobało mi się &quot; _delay_ms&quot;, blokowało program. Postanowiłem zrobić to na przerwaniach Timera od przepełnienia (video kursy p. Mirka dają wyniki).<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11908">gonzicz</a> — 21 gru 2015, o 17:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Vroobee]]></name></author>
<updated>2015-12-21T16:11:22+01:00</updated>
<published>2015-12-21T16:11:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148626#p148626</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148626#p148626"/>
<title type="html"><![CDATA[Re: Problem ze switchem i przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148626#p148626"><![CDATA[
Niestety po zmianach nadal jest to samo. Co ciekawe podczas zwykłego zapalania kolejnych diod wciśnięciem przycisku (najpierw PB3, potem PB4 i gaszenie) jest ok. Tylko przy mruganiu wykrzacza i nie chce wejść do 3 case.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5942">Vroobee</a> — 21 gru 2015, o 16:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gonzicz]]></name></author>
<updated>2015-12-21T15:45:27+01:00</updated>
<published>2015-12-21T15:45:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148622#p148622</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148622#p148622"/>
<title type="html"><![CDATA[Re: Problem ze switchem i przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148622#p148622"><![CDATA[
Kolego APAP75 polecam przeczytać artykuły p. Mirka na temat drgających styków a szczególnie od 2. Wtedy wszystkie wątpliwości co do:<br /><div class="quotetitle">APAP75 napisał(a):</div><div class="quotecontent"><br />else if (key_lock &amp;&amp; (PINB &amp; KEY0))<br />        { key_lock++;}<br /></div><br />od razu Ci się wyjaśnią. <!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2012/10/obsuga-klawiszy-drgania-stykow-cd2.html" >http://mirekk36.blogspot.com/2012/10/ob ... w-cd2.html</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11908">gonzicz</a> — 21 gru 2015, o 15:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[APAP75]]></name></author>
<updated>2015-12-21T13:42:42+01:00</updated>
<published>2015-12-21T13:42:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148613#p148613</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148613#p148613"/>
<title type="html"><![CDATA[Re: Problem ze switchem i przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148613#p148613"><![CDATA[
Hmm... myślę, że problem tkwi w funkcji <br />void przycisk (void) <br /><br />[syntax=c]if ( !key_lock &amp;&amp; !(PINB &amp; KEY0))<br />        {<br />                key_lock = 55000;<br />                if (i&lt;3){       //jeśli i &lt; 3<br />                        i++;    //to zwiększaj i<br />                 }<br />                else{<br />                        i=0;    //w przeciwnym razie i =0<br />                }<br />         }[/syntax]<br /><br />Tutaj sprawdzasz, czy wciśnięty jest klawisz i czy nie był wciśnięty przy poprzednim obiegu pętli.<br />Ustawiasz key_lock tak aby przy wciśniętym przycisku część tego kodu wykonała się tylko raz. Warunek if(i&lt;3) powinien wyglądać if(i=&lt;2), bo przy i=2 warunek ten zostanie spełniony a dalej i zostanie zwiększone o 1, czyli i=3. Przy kolejnym naciśnięciu przycisku i zostanie wyzerowane.<br /><br />Zastanawia mnie to:<br /> [syntax=c]else if (key_lock &amp;&amp; (PINB &amp; KEY0))<br />        { key_lock++;}[/syntax]<br />Rozumiem to tak - jeśli [syntax=c]if ( !key_lock &amp;&amp; !(PINB &amp; KEY0))[/syntax] niespełniony i jeśli key_lock różne od zera i przycisk nie wciśnięty zwiększ key_lock o jeden. Nie wiem jak to działało do case=2, bo key_lock będzie równe zero raz na 65536 obiegów pętli, a bez tego warunek [syntax=c]if ( !key_lock &amp;&amp; !(PINB &amp; KEY0))[/syntax] nigdy nie będzie spełniony i i nigdy nie zostanie zwiększone o jeden.<br />Nie powinno tam być key_lock=0 ? key_lock to flaga.<br />Też jestem jeszcze początkujący, więc jak ktoś znajdzie błąd w moim rozumowaniu, będę wdzięczny.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6195">APAP75</a> — 21 gru 2015, o 13:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Vroobee]]></name></author>
<updated>2015-12-21T12:40:36+01:00</updated>
<published>2015-12-21T12:40:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148610#p148610</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148610#p148610"/>
<title type="html"><![CDATA[Re: Problem ze switchem i przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148610#p148610"><![CDATA[
Chyba masz rację ze zwracaniem typu zmiennej. Zobaczę to po 16 bo na razie jestem w pracy. Co do warunku to jeśli i jest równe 2 i zwiększy o 1 wtedy przechodzi do else i przypisuje do i zero. Dla mnie to tak działa <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /> <br /><br />Wysłane z mojego D5503 przy użyciu Tapatalka<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5942">Vroobee</a> — 21 gru 2015, o 12:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gonzicz]]></name></author>
<updated>2015-12-21T12:10:20+01:00</updated>
<published>2015-12-21T12:10:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148609#p148609</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148609#p148609"/>
<title type="html"><![CDATA[Re: Problem ze switchem i przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148609#p148609"><![CDATA[
dziś popołudniu spróbuje (na żywym organizmie) na spokojnie się nad tym zastanowić i jak zapali mi sie lampka to dam znać.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 15 minutach ]</span></strong><br /><br />Tak sobie myślę... Czy funkcja &quot;przycisk&quot; nie zwraca wartości zmiennej &quot;i&quot; ? czy na końcu nie powinno być return i; a  w typie zwracanej wartości funkcji zamiast void to uint8_t?<br />Jeśli się mylę to sorki ale jestem początkujący. <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: 24 minutach ]</span></strong><br /><br />key_lock = 55000;<br />if (i&lt;3){//jeśli i &lt; 3 <br />i++;//to zwiększaj i<br /><br />}<br />else{<br />i=0;//w przeciwnym razie i =0<br />}<br /><br /> Czy w warunku if(i&lt;3) nie powinno być (i&lt;=1). Bo jeśli i=2 (spełni warunek if (1&lt;3)) to i zwiększy się o jeden (i będzie równe 3). A i=3 sie masz w obsłudze switch().<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11908">gonzicz</a> — 21 gru 2015, o 12:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Vroobee]]></name></author>
<updated>2015-12-21T11:44:24+01:00</updated>
<published>2015-12-21T11:44:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148608#p148608</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148608#p148608"/>
<title type="html"><![CDATA[Re: Problem ze switchem i przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148608#p148608"><![CDATA[
Zerowanie i jest w funkcji z debouncingiem przycisku.<br />[syntax=c]if (i&lt;3){       //jeśli i &lt; 3<br />                        i++;    //to zwiększaj i<br /> <br />                }<br />                else{<br />                        i=0;    //w przeciwnym razie i =0<br />                }[/syntax]<br /><br />Próbowałem robić z tym casem 4 ale program i tak dochodził do tego samego momentu i stop - ciągle mruga. Podejrzewam, że ten delay coś bruździ bo bez mrugania o dziwo działa.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5942">Vroobee</a> — 21 gru 2015, o 11:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gonzicz]]></name></author>
<updated>2015-12-21T11:33:50+01:00</updated>
<published>2015-12-21T11:33:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148606#p148606</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148606#p148606"/>
<title type="html"><![CDATA[Re: Problem ze switchem i przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148606#p148606"><![CDATA[
Witam. Jestem początkującym ale jeśli dobrze rozumie założenie programu to diody maja: 0- być zgaszone; 1- zapalić się; 2 - mrugać. Po kolejnym wciśnięciu przycisku powinny zgasną, zapalić się,  mrugać i tak w kółko. Wydaje mi się że brakuje tu wyzerowania &quot;i&quot; na końcu.<br />Może spróbuj dać jeszcze: case4: i=0; break; Wtedy diody zgasną.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11908">gonzicz</a> — 21 gru 2015, o 11:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Vroobee]]></name></author>
<updated>2015-12-21T10:54:38+01:00</updated>
<published>2015-12-21T10:54:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148603#p148603</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148603#p148603"/>
<title type="html"><![CDATA[Problem ze switchem i przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13952&amp;p=148603#p148603"><![CDATA[
Witam,<br />sprawa jest banalna ale trochę się pogubiłem. Otóż napisałem program, który po wciśnięciu przycisku ma zmieniać tryb świecenia diód LED na ATtiny13. Z tym, że program dochodzi do case 2 i dalej nie chce przełączyć. Proszę o pomoc - banał ale poległem <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#define KEY0 (1&lt;&lt;PB0)<br /><br />uint16_t key_lock=0;<br />uint8_t i=0;<br /><br />void przycisk(void); //deklaracja funkcji wciśnięcia przycisku<br /><br />int main (void)<br />{<br />//IO<br />DDRB|=(1&lt;&lt;3);//LEDy<br />DDRB|=(1&lt;&lt;4);<br />DDRB|=(1&lt;&lt;5);<br />DDRB&amp;=~(1&lt;&lt;0); //przycisk<br /><br />PORTB |= (1&lt;&lt;PB0); //podciągnięcie przycisku do VCC<br /><br />while (1)<br />{<br />przycisk();<br />switch (i){//zmiana trybu świecenia<br />case 0:{PORTB&amp;=~(1&lt;&lt;3);//diody wyłączone<br />PORTB&amp;=~(1&lt;&lt;4);<br />PORTB&amp;=~(1&lt;&lt;5);<br />break;<br />}<br />case 1:{<br />PORTB|=(1&lt;&lt;3);//diody włączone<br />PORTB|=(1&lt;&lt;4);<br />PORTB|=(1&lt;&lt;5);<br />break;<br />}<br />case 2:{<br />PORTB^=(1&lt;&lt;3);//diody migają<br />PORTB^=(1&lt;&lt;4);<br />PORTB^=(1&lt;&lt;5);<br />_delay_ms(250);<br />break;<br />}<br />}<br />}<br />}<br />void przycisk (void)//definicja funkcji przycisku<br />{<br />if ( !key_lock &amp;&amp; !(PINB &amp; KEY0))<br />{<br />key_lock = 55000;<br />if (i&lt;3){//jeśli i &lt; 3 <br />i++;//to zwiększaj i<br /><br />}<br />else{<br />i=0;//w przeciwnym razie i =0<br />}<br /><br />}<br />else if (key_lock &amp;&amp; (PINB &amp; KEY0))<br />{ key_lock++;}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5942">Vroobee</a> — 21 gru 2015, o 10:54</p><hr />
]]></content>
</entry>
</feed>