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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-05-26T22:02:17+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=7182&amp;mode</id>
<entry>
<author><name><![CDATA[ifrook]]></name></author>
<updated>2014-05-26T22:02:17+01:00</updated>
<published>2014-05-26T22:02:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82489#p82489</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82489#p82489"/>
<title type="html"><![CDATA[Re: problem z programem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82489#p82489"><![CDATA[
jakieś sugestie?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3649">ifrook</a> — 26 maja 2014, o 22:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ifrook]]></name></author>
<updated>2014-05-26T11:43:00+01:00</updated>
<published>2014-05-26T11:43:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82410#p82410</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82410#p82410"/>
<title type="html"><![CDATA[Re: problem z programem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82410#p82410"><![CDATA[
Próbowałem tego to nie działa teraz dioda zachowuje się tak że gdy D1 jest włączona moge właczyć D2 ale tylko na chwile bo ta zaraz gaśnie.<br /><br />Założyłem sobie że ma to być tak że po wciśnięciu D1 nie mogę włączyć D2 i dodatkowo jesli włączyłem D1 podczas świecenia D2 to D2 gaśnie. Wydaje mi się że ta definicja musi być bardziej rozbudowana ale nie mam pomysłu jak;/<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3649">ifrook</a> — 26 maja 2014, o 11:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2014-05-26T09:17:14+01:00</updated>
<published>2014-05-26T09:17:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82396#p82396</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82396#p82396"/>
<title type="html"><![CDATA[Re: problem z programem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82396#p82396"><![CDATA[
<div class="quotetitle">ifrook napisał(a):</div><div class="quotecontent"><br />wszystko działa, może wczoraj ze zmeczenia coś źle zmieniłem w kodzie nie wiem.<br />Napisałeś że na ATB diody zmieniane są stanem niskim przecież z kodu jaki wkleiłem a Ty poprawiłeś wynika że musi być sterowane plusem ?<br /></div>A w którym miejscu napisałem, że trzeba coś tam sterować plusem? Kolega chyba nadal jest zmęczony i nieuważnie czyta.<br /><br /><br />A zamiast tego [syntax=c]#define LED_PIN2OFF !(1&lt;&lt;PC1)[/syntax] powinno być [syntax=c]#define LED_PIN2OFF PORTC |= LED_PIN2   // wyłączenie diody LED[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 26 maja 2014, o 09:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ifrook]]></name></author>
<updated>2014-05-26T00:17:41+01:00</updated>
<published>2014-05-26T00:17:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82380#p82380</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82380#p82380"/>
<title type="html"><![CDATA[Re: problem z programem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82380#p82380"><![CDATA[
wszystko działa, może wczoraj ze zmeczenia coś źle zmieniłem w kodzie nie wiem.<br />Napisałeś że na ATB diody zmieniane są stanem niskim przecież z kodu jaki wkleiłem a Ty poprawiłeś wynika że musi być sterowane plusem ?<br /><br />Chciałbym dodać do kodu aby po zgaszeniu diody 1 automatycznie zgasła też dioda druga<br /><br />wymyśliłem coś takiego ale wyskoczył mi żółty błąd <br /><br />dodałem<br />include LED_PIN2OFF<br /><br />[syntax=c]/*<br />* main.c<br />*<br />* Created on: 2010-03-27<br />* Autor: Mirosław Kardas<br />*/<br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br /><br />// ************* definicje dla preprocesora<br />// dioda LED1<br />#define LED_PIN1 (1&lt;&lt;PC7) // definicja pinu do którego podłączona jest dioda<br />#define LED_TOG1 PORTC ^= LED_PIN1 // makrodefinicja – zmiana stanu diody<br /><br />// dioda led2<br /><br />#define LED_PIN2 (1&lt;&lt;PC1)<br />#define LED_TOG2 PORTC ^= LED_PIN2<br />#define LED_PIN2OFF !(1&lt;&lt;PC1)<br />// klawisz K1<br />#define KEY_PIN1 (1&lt;&lt;PC6)<br />#define KEY_DOWN1 !(PINC &amp; KEY_PIN1)<br /><br />// klawisz K2<br /><br />#define KEY_PIN2 (1&lt;&lt;PC2)<br />#define KEY_DOWN2 !(PINC &amp; KEY_PIN2)<br /><br /><br /><br />int klawisz_wcisniety1(void); // deklaracja funkcji<br />int klawisz_wcisniety2(void);<br /><br />// *************************************************** pętla główna main()<br />int main(void)<br />{<br />// ****** inicjalizacja *********<br />DDRC |= LED_PIN1; // kierunek pinu PC7 – wyjściowy<br />PORTC |= LED_PIN1; // wyłączenie diody LED<br />DDRC &amp;= ~KEY_PIN1; // kierunek pinu PC6 - wejściowy<br />PORTC |= KEY_PIN1; // podciągnięcie pinu do VCC<br />DDRC|= LED_PIN2;<br />PORTC |= LED_PIN2;<br />DDRC &amp;= ~KEY_PIN2;<br />PORTC |= KEY_PIN2;<br /><br /><br />// ****** pętla główna programu *********<br />while(1)<br />{<br />if( klawisz_wcisniety1() ) // jeśli klawisz wciśnięty<br />{<br />LED_TOG1; // zmień stan diody na przeciwny<br />_delay_ms(200); // pauza 200ms<br />}<br /><br />if(PINC &amp; LED_PIN1)<br />{<br />if( klawisz_wcisniety2() ) // jeśli klawisz wciśnięty<br />{<br />LED_TOG2; // zmień stan diody na przeciwny<br />_delay_ms(200); // pauza 200ms<br />}<br />}<br />if(PINC &amp; LED_PIN1)<br />{<br />LED_PIN2OFF;<br />}<br /><br /><br />}<br /><br />}<br />//******************************************************** koniec main()<br /><br />// definicja funkcji<br />int klawisz_wcisniety1(void)<br />{<br />if( KEY_DOWN1 ) // klawisz wciśnięty ?<br />{<br />_delay_ms(80); // czas drgań styków<br />if( KEY_DOWN1 ) return 1; // jeśli wciśnięty? zakończ funkcję - rezultat = 1<br />}<br /><br />return 0; // jeśli nie wciśnięty klawisz, zakończ funkcję, rezultat = 0<br />}<br /><br />int klawisz_wcisniety2(void)<br />{<br />if( KEY_DOWN2 ) // klawisz wciśnięty ?<br />{<br />_delay_ms(80); // czas drgań styków<br />if( KEY_DOWN2 ) return 1; // jeśli wciśnięty? zakończ funkcję - rezultat = 1<br />}<br /><br />return 0; // jeśli nie wciśnięty klawisz, zakończ funkcję, rezultat = 0<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3649">ifrook</a> — 26 maja 2014, o 00:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2014-05-25T09:17:37+01:00</updated>
<published>2014-05-25T09:17:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82313#p82313</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82313#p82313"/>
<title type="html"><![CDATA[Re: problem z programem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82313#p82313"><![CDATA[
Jeśli chcesz zmieniać stan drugiej diody tylko wtedy gdy pierwsza świeci to powinieneś napisać tak[syntax=c]if( !(PINC &amp; LED_PIN1) )[/syntax]jeśli pierwszą diodę zapalasz stanem niskim, albo tak[syntax=c]if( (PINC &amp; LED_PIN1) )[/syntax]jesli zapalasz ją stanem wysokim. <br />W pierwszym przypadku warunek jest spełniony jeśli na pinie LED1 jest stan niski, a w drugim - jeśli jest stan wysoki. <br /><br />Na ATB diody włączane są stanem niskim i mi działa pierwszy przykład.<br /><br /><div class="quotetitle">ifrook napisał(a):</div><div class="quotecontent"><br />Gdy ten sam program napisze dla diód i przycisków które znajdują się na rejestrach C to dzieją się cuda<br /></div><br />A jakiego procka używasz? Może używasz takiego, który na porcie C ma JTAG. I dlatego część pinów może Ci nie działać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 25 maja 2014, o 09:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ifrook]]></name></author>
<updated>2014-05-24T21:15:24+01:00</updated>
<published>2014-05-24T21:15:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82289#p82289</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82289#p82289"/>
<title type="html"><![CDATA[Re: problem z programem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82289#p82289"><![CDATA[
z przyzwyczajenia wiem że prawidłowo jest uint8_t<br /><br />Pomogłeś mi dzięki, ale uwaga <br />if( !(PINC &amp; LED_PIN1) )    dioda 2 da się włączać i wyłączać gdy 1 jest w stanie Low<br />dlatego wpisałem if( (PINC &amp; LED_PIN1) ) i teraz działa jak chciałem ale dlaczego? <br /><br />Gdy ten sam program napisze dla diód i przycisków które znajdują się na rejestrach C to dzieją się cuda<br /><br />czy to ma związek jakiś z odczytem PINC ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3649">ifrook</a> — 24 maja 2014, o 21:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2014-05-24T19:54:34+01:00</updated>
<published>2014-05-24T19:54:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82279#p82279</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82279#p82279"/>
<title type="html"><![CDATA[Re: problem z programem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82279#p82279"><![CDATA[
W pętli while zamiast [syntax=c]if(LED_PIN1)<br />{<br />       if(  klawisz_wcisniety2()  )    // jeśli klawisz wciśnięty<br />       {<br />LED_TOG2;              // zmień stan diody na przeciwny<br />_delay_ms(200); // pauza 200ms<br />       }<br />}[/syntax]<br />wstaw [syntax=c]if( !(PINC &amp; LED_PIN1) )<br />{<br />       if(  klawisz_wcisniety2()  )    // jeśli klawisz wciśnięty<br />       {<br />LED_TOG2;              // zmień stan diody na przeciwny<br />_delay_ms(200); // pauza 200ms<br />       }<br />}[/syntax]<br />W pierwszym przykładzie zamiast <strong>LED_PIN1</strong> preprocesor wstawi <strong>0b10000000</strong>. Czyli ten warunek zawsze będzie spełniony i nie będzie to miało żadnego związku z diodą LED1.<br /><br />A tak poza tym to dlaczego wszędzie używasz typu <strong>int</strong> zamiast wygodnych typów, które są w gcc np. <strong>uint8_t</strong>?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 24 maja 2014, o 19:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gumeni]]></name></author>
<updated>2014-05-24T19:45:25+01:00</updated>
<published>2014-05-24T19:45:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82277#p82277</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82277#p82277"/>
<title type="html"><![CDATA[Re: problem z programem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82277#p82277"><![CDATA[
[syntax=c]/*<br />     * main.c<br />     *<br />     *  Created on: 2010-03-27<br />     *       Autor: Mirosław Kardas<br />     */<br />    #include &lt;avr/io.h&gt;<br />    #include &lt;util/delay.h&gt;<br />     <br />     <br />    // *************   definicje dla preprocesora<br />    // dioda LED1<br />    #define LED_PIN1 (1&lt;&lt;PC7)                       // definicja pinu do którego podłączona jest dioda<br />    #define LED_TOG1 PORTC ^= LED_PIN1      // makrodefinicja – zmiana stanu diody<br />     <br />    // dioda led2<br />     <br />    #define LED_PIN2 (1&lt;&lt;PA0)<br />    #define LED_TOG2 PORTA ^= LED_PIN2<br />     <br />    // klawisz K1<br />    #define KEY_PIN1 (1&lt;&lt;PC6)<br />    #define KEY_DOWN1 !(PINC &amp; KEY_PIN1)<br />     <br />    // klawisz K2<br />     <br />    #define KEY_PIN2 (1&lt;&lt;PA1)<br />    #define KEY_DOWN2 !(PINA &amp; KEY_PIN2)<br />     <br />     <br />     <br />    int klawisz_wcisniety1(void);   // deklaracja funkcji<br />    int klawisz_wcisniety2(void);<br />     <br />    // *************************************************** pętla główna main()<br />    int main(void)<br />    {<br />            // ****** inicjalizacja *********<br />            DDRC |= LED_PIN1;               // kierunek pinu PC7 – wyjściowy<br />            PORTC |= LED_PIN1;              // wyłączenie diody LED<br />            DDRC &amp;= ~KEY_PIN1;              // kierunek pinu PC6 - wejściowy<br />            PORTC |= KEY_PIN1;              // podciągnięcie pinu do VCC<br />            DDRA|= LED_PIN2;<br />            PORTA |= LED_PIN2;<br />            DDRA &amp;= ~KEY_PIN2;<br />            PORTA |= KEY_PIN2;<br />     <br />     <br />            // ****** pętla główna programu  *********<br />            while(1)<br />            {<br />                    if(  klawisz_wcisniety1()  )    // jeśli klawisz wciśnięty<br />                    {<br />                             LED_TOG1;              // zmień stan diody na przeciwny<br />                            _delay_ms(200); // pauza 200ms<br />                    }<br />     <br />     <br />                    if(PINC &amp; LED_PIN1)<br />                    {<br />                    if(  klawisz_wcisniety2()  )    // jeśli klawisz wciśnięty<br />                                   {<br />                                            LED_TOG2;              // zmień stan diody na przeciwny<br />                                           _delay_ms(200); // pauza 200ms<br />                                   }<br />                           }<br />            }<br />     <br />    }<br />    //******************************************************** koniec main()<br />     <br />    // definicja funkcji<br />    int klawisz_wcisniety1(void)<br />    {<br />            if( KEY_DOWN1 )                                 // klawisz wciśnięty ?<br />            {<br />                    _delay_ms(80);                          // czas drgań styków<br />                    if( KEY_DOWN1 ) return 1;       // jeśli wciśnięty?  zakończ funkcję - rezultat = 1<br />            }<br />     <br />            return 0;       // jeśli nie wciśnięty klawisz, zakończ funkcję, rezultat = 0<br />    }<br />     <br />    int klawisz_wcisniety2(void)<br />    {<br />            if( KEY_DOWN2 )                                 // klawisz wciśnięty ?<br />            {<br />                    _delay_ms(80);                          // czas drgań styków<br />                    if( KEY_DOWN2 ) return 1;       // jeśli wciśnięty?  zakończ funkcję - rezultat = 1<br />            }<br />     <br />            return 0;       // jeśli nie wciśnięty klawisz, zakończ funkcję, rezultat = 0<br />    }[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3088">gumeni</a> — 24 maja 2014, o 19:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ifrook]]></name></author>
<updated>2014-05-24T17:49:57+01:00</updated>
<published>2014-05-24T17:49:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82268#p82268</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82268#p82268"/>
<title type="html"><![CDATA[Re: problem z programem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82268#p82268"><![CDATA[
chciałbym stan diody drugiej można było zmieniać tylko gdy dioda pierwsza świeci.<br /><br />wydawało mi się że powinno to być coś takiego <br /><br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 2010-03-27<br /> *       Autor: Mirosław Kardas<br /> */<br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br /><br />// *************   definicje dla preprocesora<br />// dioda LED1<br />#define LED_PIN1 (1&lt;&lt;PC7)                       // definicja pinu do którego podłączona jest dioda<br />#define LED_TOG1 PORTC ^= LED_PIN1      // makrodefinicja – zmiana stanu diody<br /><br />// dioda led2<br /><br />#define LED_PIN2 (1&lt;&lt;PA0)<br />#define LED_TOG2 PORTA ^= LED_PIN2<br /><br />// klawisz K1<br />#define KEY_PIN1 (1&lt;&lt;PC6)<br />#define KEY_DOWN1 !(PINC &amp; KEY_PIN1)<br /><br />// klawisz K2<br /><br />#define KEY_PIN2 (1&lt;&lt;PA1)<br />#define KEY_DOWN2 !(PINA &amp; KEY_PIN2)<br /><br /><br /><br />int klawisz_wcisniety1(void);   // deklaracja funkcji<br />int klawisz_wcisniety2(void);<br /><br />// *************************************************** pętla główna main()<br />int main(void)<br />{<br />        // ****** inicjalizacja *********<br />        DDRC |= LED_PIN1;               // kierunek pinu PC7 – wyjściowy<br />        PORTC |= LED_PIN1;              // wyłączenie diody LED<br />        DDRC &amp;= ~KEY_PIN1;              // kierunek pinu PC6 - wejściowy<br />        PORTC |= KEY_PIN1;              // podciągnięcie pinu do VCC<br />        DDRA|= LED_PIN2;<br />        PORTA |= LED_PIN2;<br />        DDRA &amp;= ~KEY_PIN2;<br />        PORTA |= KEY_PIN2;<br /><br /><br />        // ****** pętla główna programu  *********<br />        while(1)<br />        {<br />                if(  klawisz_wcisniety1()  )    // jeśli klawisz wciśnięty<br />                {<br />                         LED_TOG1;              // zmień stan diody na przeciwny<br />                        _delay_ms(200); // pauza 200ms<br />                }<br /><br /><br />                if(LED_PIN1)<br />                {<br />                if(  klawisz_wcisniety2()  )    // jeśli klawisz wciśnięty<br />                               {<br />                                        LED_TOG2;              // zmień stan diody na przeciwny<br />                                       _delay_ms(200); // pauza 200ms<br />                               }<br />                       }<br />        }<br /><br />}<br />//******************************************************** koniec main()<br /><br />// definicja funkcji<br />int klawisz_wcisniety1(void)<br />{<br />        if( KEY_DOWN1 )                                 // klawisz wciśnięty ?<br />        {<br />                _delay_ms(80);                          // czas drgań styków<br />                if( KEY_DOWN1 ) return 1;       // jeśli wciśnięty?  zakończ funkcję - rezultat = 1<br />        }<br /><br />        return 0;       // jeśli nie wciśnięty klawisz, zakończ funkcję, rezultat = 0<br />}<br /><br />int klawisz_wcisniety2(void)<br />{<br />        if( KEY_DOWN2 )                                 // klawisz wciśnięty ?<br />        {<br />                _delay_ms(80);                          // czas drgań styków<br />                if( KEY_DOWN2 ) return 1;       // jeśli wciśnięty?  zakończ funkcję - rezultat = 1<br />        }<br /><br />        return 0;       // jeśli nie wciśnięty klawisz, zakończ funkcję, rezultat = 0<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3649">ifrook</a> — 24 maja 2014, o 17:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ifrook]]></name></author>
<updated>2014-05-24T15:31:38+01:00</updated>
<published>2014-05-24T15:31:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82255#p82255</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82255#p82255"/>
<title type="html"><![CDATA[Re: problem z programem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82255#p82255"><![CDATA[
udalo mi sie <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=3649">ifrook</a> — 24 maja 2014, o 15:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gumeni]]></name></author>
<updated>2014-05-24T15:27:18+01:00</updated>
<published>2014-05-24T15:27:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82252#p82252</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82252#p82252"/>
<title type="html"><![CDATA[Re: problem z programem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82252#p82252"><![CDATA[
Za dużo nawiasów miałeś.<br /><br />[syntax=c]/*<br />* main.c<br />*<br />* Created on: 2010-03-27<br />* Autor: Mirosław Kardas<br />*/<br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br /><br />// ************* definicje dla preprocesora<br />// dioda LED1<br />#define LED_PIN1 (1&lt;&lt;PC7) // definicja pinu do którego podłączona jest dioda<br />#define LED_TOG1 PORTC ^= LED_PIN1 // makrodefinicja – zmiana stanu diody<br /><br />// dioda led2<br /><br />#define LED_PIN2 (1&lt;&lt;PA0)<br />#define LED_TOG2 PORTA ^= LED_PIN2<br /><br />// klawisz K1<br />#define KEY_PIN1 (1&lt;&lt;PC6)<br />#define KEY_DOWN1 !(PINC &amp; KEY_PIN1)<br /><br />// klawisz K2<br /><br />#define KEY_PIN2 (1&lt;&lt;PA1)<br />#define KEY_DOWN2 !(PINA &amp; KEY_PIN2)<br /><br /><br /><br />int klawisz_wcisniety1(void); // deklaracja funkcji<br />int klawisz_wcisniety2(void);<br /><br />// *************************************************** pętla główna main()<br />int main(void)<br />{<br />// ****** inicjalizacja *********<br />DDRC |= LED_PIN1; // kierunek pinu PC7 – wyjściowy<br />PORTC |= LED_PIN1; // wyłączenie diody LED<br />DDRC &amp;= ~KEY_PIN1; // kierunek pinu PC6 - wejściowy<br />PORTC |= KEY_PIN1; // podciągnięcie pinu do VCC<br />DDRA|= LED_PIN2;<br />PORTA |= LED_PIN2;<br />DDRA &amp;= ~KEY_PIN2;<br />PORTA |= KEY_PIN2;<br /><br /><br />// ****** pętla główna programu *********<br />while(1)<br />{<br />if( klawisz_wcisniety1() ) // jeśli klawisz wciśnięty<br />{<br />LED_TOG1; // zmień stan diody na przeciwny<br />_delay_ms(200); // pauza 200ms<br />}<br /><br /><br />if( klawisz_wcisniety2() ) // jeśli klawisz wciśnięty<br />{<br />LED_TOG2; // zmień stan diody na przeciwny<br />_delay_ms(200); // pauza 200ms<br />}<br />}<br /><br />}<br />//******************************************************** koniec main()<br /><br />// definicja funkcji<br />int klawisz_wcisniety1(void)<br />{<br />if( KEY_DOWN1 ) // klawisz wciśnięty ?<br />{<br />_delay_ms(80); // czas drgań styków<br />if( KEY_DOWN1 ) return 1; // jeśli wciśnięty? zakończ funkcję - rezultat = 1<br />}<br /><br />return 0; // jeśli nie wciśnięty klawisz, zakończ funkcję, rezultat = 0<br />}<br /><br />int klawisz_wcisniety2(void)<br />{<br />if( KEY_DOWN2 ) // klawisz wciśnięty ?<br />{<br />_delay_ms(80); // czas drgań styków<br />if( KEY_DOWN2 ) return 1; // jeśli wciśnięty? zakończ funkcję - rezultat = 1<br />}<br /><br />return 0; // jeśli nie wciśnięty klawisz, zakończ funkcję, rezultat = 0<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3088">gumeni</a> — 24 maja 2014, o 15:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-05-24T14:46:13+01:00</updated>
<published>2014-05-24T14:46:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82249#p82249</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82249#p82249"/>
<title type="html"><![CDATA[Re: problem z programem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82249#p82249"><![CDATA[
Panie kolego to nie jest twój pierwszy post na forum, już wielokrotnie moderatorzy i ja także przypominaliśmy tobie i pokazywaliśmy jak się umieszcza kod źródłowy na forum w znacznikach [ syntax = c ] ....<br /><br />jeśli więc nie zaczniesz tego stosować i nie poprawisz tego co wyżej to przykro mi ale będę usuwał takie posty <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 24 maja 2014, o 14:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ifrook]]></name></author>
<updated>2014-05-24T15:31:05+01:00</updated>
<published>2014-05-24T14:36:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82248#p82248</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82248#p82248"/>
<title type="html"><![CDATA[problem z programem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7182&amp;p=82248#p82248"><![CDATA[
W ramach ćwiczeń chciałem sobie dołożyć drugą diodę  i przycisk do programu Mirka ale koniec końców ta właśnie dioda cały czas jest zasilona ;/ gdzie tkwi błąd?<br /><br /><br />Faktycznie poprawiam się już ;p <br /><br />[syntax=c]<br />/*<br /> * main.c<br /> *<br /> *  Created on: 2010-03-27<br /> *       Autor: Mirosław Kardas<br /> */<br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br /><br />// *************   definicje dla preprocesora<br />// dioda LED1<br />#define LED_PIN1 (1&lt;&lt;PC7)// definicja pinu do którego podłączona jest dioda<br />#define LED_TOG1 PORTC ^= LED_PIN1// makrodefinicja – zmiana stanu diody<br /><br />// dioda led2<br /><br />#define LED_PIN2 (1&lt;&lt;PA0)<br />#define LED_TOG2 PORTA ^= LED_PIN2<br /><br />// klawisz K1<br />#define KEY_PIN1 (1&lt;&lt;PC6)<br />#define KEY_DOWN1 !(PINC &amp; KEY_PIN1)<br /><br />// klawisz K2<br /><br />#define KEY_PIN2 (1&lt;&lt;PA1)<br />#define KEY_DOWN2 !(PINA &amp; KEY_PIN2)<br /><br /><br /><br />int klawisz_wcisniety1(void);// deklaracja funkcji<br />int klawisz_wcisniety2(void);<br /><br />// *************************************************** pętla główna main()<br />int main(void)<br />{<br />// ****** inicjalizacja *********<br />DDRC |= LED_PIN1;// kierunek pinu PC7 – wyjściowy<br />PORTC |= LED_PIN1;// wyłączenie diody LED<br />DDRC &amp;= ~KEY_PIN1;// kierunek pinu PC6 - wejściowy<br />PORTC |= KEY_PIN1;// podciągnięcie pinu do VCC<br />DDRA|= LED_PIN2;<br />PORTA |= LED_PIN2;<br />DDRA &amp;= ~KEY_PIN2;<br />PORTA |= KEY_PIN2;<br /><br /><br />// ****** pętla główna programu  *********<br />while(1)<br />{<br />if(  klawisz_wcisniety1()  )  // jeśli klawisz wciśnięty<br />{<br /> LED_TOG1;// zmień stan diody na przeciwny<br />_delay_ms(200);// pauza 200ms<br />}<br />}<br />{<br />if(  klawisz_wcisniety2()  )  // jeśli klawisz wciśnięty<br />{<br /> LED_TOG2;// zmień stan diody na przeciwny<br />_delay_ms(200);// pauza 200ms<br />}<br />}<br /><br />}<br />//******************************************************** koniec main()<br /><br />// definicja funkcji<br />int klawisz_wcisniety1(void)<br />{<br />if( KEY_DOWN1 )// klawisz wciśnięty ?<br />{<br />_delay_ms(80);// czas drgań styków<br />if( KEY_DOWN1 ) return 1;   // jeśli wciśnięty?  zakończ funkcję - rezultat = 1<br />}<br /><br />return 0;// jeśli nie wciśnięty klawisz, zakończ funkcję, rezultat = 0<br />}<br /><br />int klawisz_wcisniety2(void)<br />{<br />if( KEY_DOWN2 )// klawisz wciśnięty ?<br />{<br />_delay_ms(80);// czas drgań styków<br />if( KEY_DOWN2 ) return 1;   // jeśli wciśnięty?  zakończ funkcję - rezultat = 1<br />}<br /><br />return 0;// jeśli nie wciśnięty klawisz, zakończ funkcję, rezultat = 0<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3649">ifrook</a> — 24 maja 2014, o 14:36</p><hr />
]]></content>
</entry>
</feed>