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

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

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=5092&amp;mode</id>
<entry>
<author><name><![CDATA[Lukaszm]]></name></author>
<updated>2013-12-12T21:15:40+01:00</updated>
<published>2013-12-12T21:15:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60875#p60875</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60875#p60875"/>
<title type="html"><![CDATA[Re: Obroty silnika a Micro Switch]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60875#p60875"><![CDATA[
Powiedziałbym, że nie tylko delay jest problemem.<br />W skrócie:<br />-zmienna key_lock - pozostałość po poprzednich wersjach kodu<br />-zmienna i - nie jest zerowana- wiadomo, że jak dojdzie do 255 to po kolejnej instrukcji zrobi się 0, ale chyba jakiś porządek musi być<br />-zamiast tego[syntax=c]else<br />{<br />if[/syntax] napisałbym else if'a- chociaż różnica żadna<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1181">Lukaszm</a> — 12 gru 2013, o 21:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2013-12-12T19:47:23+01:00</updated>
<published>2013-12-12T19:47:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60860#p60860</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60860#p60860"/>
<title type="html"><![CDATA[Re: Obroty silnika a Micro Switch]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60860#p60860"><![CDATA[
<div class="quotetitle">SunRiver napisał(a):</div><div class="quotecontent"><br />Noo Brawo ...<br />ale ... a zresztą ważne że działa<br /></div><br />No Sun powiedz, że te delaye to masakra jest.<br />Oczywiście najważniejsze, że ruszyło i działa jednak trzeba przystąpić do poprawienia kodu<br />pod kątem eliminacji tych delay'ów<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br />trochę się też Koledze formatowanie &quot;rozjechało&quot; <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> — 12 gru 2013, o 19:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2013-12-12T18:11:09+01:00</updated>
<published>2013-12-12T18:11:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60833#p60833</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60833#p60833"/>
<title type="html"><![CDATA[Re: Obroty silnika a Micro Switch]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60833#p60833"><![CDATA[
Noo Brawo ...<br />ale ... a zresztą ważne że działa<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 12 gru 2013, o 18:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Camillo123]]></name></author>
<updated>2013-12-12T18:06:23+01:00</updated>
<published>2013-12-12T18:06:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60832#p60832</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60832#p60832"/>
<title type="html"><![CDATA[Re: Obroty silnika a Micro Switch]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60832#p60832"><![CDATA[
Witam,<br />udało mi się rozwiązać problem <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 WE_A PC7<br />#define WE_B PC6<br /> <br />#define DC_PRAWO PORTC &amp;= ~(1&lt;&lt;WE_A); PORTC |= (1&lt;&lt;WE_B)<br />#define DC_LEWO PORTC |= (1&lt;&lt;WE_A); PORTC &amp;= ~(1&lt;&lt;WE_B)<br />#define DC_STOP PORTC &amp;= ~(1&lt;&lt;WE_A); PORTC &amp;= ~(1&lt;&lt;WE_B)<br />#define key_pin (1&lt;&lt;PC0)<br />uint8_t key_lock;<br />uint8_t i=2;<br /><br />int main (void){<br />DDRC |= (1&lt;&lt;WE_A) | (1&lt;&lt;WE_B);<br />DDRC &amp;= ~key_pin;<br />                PORTC |= key_pin;<br />_delay_ms(10);<br /> <br /> {<br />while(1)<br />                        {<br />                                if(i%2==0)<br />                                {<br />                                        if( !key_lock &amp;&amp; !(PINC &amp; key_pin) ) {<br />                                            DC_LEWO;<br />                                            _delay_ms(5000);<br />                                            DC_STOP;<br />i=i+1;<br />                                                        }<br />                                }<br />else<br />{<br />if( !key_lock &amp;&amp; !(PINC &amp; key_pin) ){<br />                                            DC_PRAWO;<br />                                            _delay_ms(5000);<br />                                            DC_STOP;<br />i=i+1;<br />                                            }<br />                                         }<br />                                }<br /><br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2197">Camillo123</a> — 12 gru 2013, o 18:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2013-12-11T20:01:30+01:00</updated>
<published>2013-12-11T20:01:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60649#p60649</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60649#p60649"/>
<title type="html"><![CDATA[Re: Obroty silnika a Micro Switch]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60649#p60649"><![CDATA[
looknij na PW<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 11 gru 2013, o 20:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Camillo123]]></name></author>
<updated>2013-12-11T19:32:19+01:00</updated>
<published>2013-12-11T19:32:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60644#p60644</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60644#p60644"/>
<title type="html"><![CDATA[Re: Obroty silnika a Micro Switch]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60644#p60644"><![CDATA[
Witam,<br />błąd był w obsłudze Micro Switcha. Kod zmodyfikowałem, więc już problem z przyciskiem nie powinno być, lecz teraz silnik kręci się cały czas <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /> <br />#define WE_A PC7<br />#define WE_B PC6<br /> <br />#define DC_PRAWO PORTC &amp;= ~(1&lt;&lt;WE_A); PORTC |= (1&lt;&lt;WE_B)<br />#define DC_LEWO PORTC |= (1&lt;&lt;WE_A); PORTC &amp;= ~(1&lt;&lt;WE_B)<br />#define DC_STOP PORTC &amp;= ~(1&lt;&lt;WE_A); PORTC &amp;= ~(1&lt;&lt;WE_B)<br />#define key_pin (1&lt;&lt;PC0)<br /><br /> <br />int main (void){<br />        DDRC |= (1&lt;&lt;WE_A) | (1&lt;&lt;WE_B);<br />                PINC |= key_pin;<br />                uint8_t i=2;<br />uint8_t key_lock;<br /> _delay_ms(10);<br />                        while(1)<br />                        {<br />                                if( i % 2 == 0 )<br />                                {<br />                                        if( !key_lock &amp;&amp; !(PINC &amp; key_pin) ) {<br />key_lock=1;<br />                                            DC_LEWO;<br />                                            _delay_ms(5000);<br />                                             DC_STOP;<br />                                                        }<br />                                }<br />else<br />{<br />                                         if( key_lock &amp;&amp; (PINC &amp; key_pin ) ) key_lock++;<br />                                            {<br />                                            DC_PRAWO;<br />                                            _delay_ms(5000);<br />                                             DC_STOP;<br />                                            }<br />                                         }i = i + 1;<br />                                }<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2197">Camillo123</a> — 11 gru 2013, o 19:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Camillo123]]></name></author>
<updated>2013-12-10T19:45:05+01:00</updated>
<published>2013-12-10T19:45:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60468#p60468</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60468#p60468"/>
<title type="html"><![CDATA[Re: Obroty silnika a Micro Switch]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60468#p60468"><![CDATA[
Wątpię by błąd był w tych liniach... Sądzę, że to coś z &quot;i&quot;<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2197">Camillo123</a> — 10 gru 2013, o 19:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Waszek]]></name></author>
<updated>2013-12-10T19:40:18+01:00</updated>
<published>2013-12-10T19:40:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60467#p60467</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60467#p60467"/>
<title type="html"><![CDATA[Re: Obroty silnika a Micro Switch]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60467#p60467"><![CDATA[
Stawiałbym na jakiś tyci błąd w liniach 7. - 9., jednak niestety będę mógł to później przeanalizować <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=2204">Waszek</a> — 10 gru 2013, o 19:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Camillo123]]></name></author>
<updated>2013-12-10T19:16:12+01:00</updated>
<published>2013-12-10T19:16:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60460#p60460</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60460#p60460"/>
<title type="html"><![CDATA[Re: Obroty silnika a Micro Switch]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60460#p60460"><![CDATA[
Po zmianie błąd powtarza się jeszcze częściej <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=2197">Camillo123</a> — 10 gru 2013, o 19:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Waszek]]></name></author>
<updated>2013-12-10T19:10:09+01:00</updated>
<published>2013-12-10T19:10:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60458#p60458</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60458#p60458"/>
<title type="html"><![CDATA[Re: Obroty silnika a Micro Switch]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60458#p60458"><![CDATA[
Spróbuj ustawić na początku i = 0 <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=2204">Waszek</a> — 10 gru 2013, o 19:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Camillo123]]></name></author>
<updated>2013-12-10T19:05:39+01:00</updated>
<published>2013-12-10T19:05:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60457#p60457</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60457#p60457"/>
<title type="html"><![CDATA[Re: Obroty silnika a Micro Switch]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60457#p60457"><![CDATA[
Witam, <br />zmniejszyłem czas DC_STOP; do 50ms, Efekt jest taki: silnik kręci się raz w prawo, raz w lewo(prawidłowo), lecz raz na jakiś czas zdarza mu się dwa lub trzy razy obrócić w prawo lub lewo <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> Wie ktoś jak temu zaradzić? Z góry dziękuje <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=2197">Camillo123</a> — 10 gru 2013, o 19:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Waszek]]></name></author>
<updated>2013-12-10T18:36:55+01:00</updated>
<published>2013-12-10T18:36:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60449#p60449</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60449#p60449"/>
<title type="html"><![CDATA[Re: Obroty silnika a Micro Switch]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60449#p60449"><![CDATA[
[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /> <br />#define WE_A PC7<br />#define WE_B PC6<br /> <br />#define DC_PRAWO PORTC &amp;= ~(1&lt;&lt;WE_A); PORTC |= (1&lt;&lt;WE_B)<br />#define DC_LEWO PORTC |= (1&lt;&lt;WE_A); PORTC &amp;= ~(1&lt;&lt;WE_B)<br />#define DC_STOP PORTC &amp;= ~(1&lt;&lt;WE_A); PORTC &amp;= ~(1&lt;&lt;WE_B)<br />#define key_pin (1&lt;&lt;PC0)<br />#define key_down !(PINC &amp; key_pin)<br /> <br />int main (void){<br />        DDRC |= (1&lt;&lt;WE_A) | (1&lt;&lt;WE_B);<br />                DDRC &amp;= ~key_pin;<br />                PORTC |= key_pin;<br />                uint8_t i=1;<br />                        while(1)<br />                        {<br />                                if( i % 2 == 0 )<br />                                {<br />                                        if (key_down)<br />                                        {_delay_ms(80);<br />                                        if (key_down)<br />                                                        {<br />                                                        DC_LEWO;<br />                                                        _delay_ms(5000);<br />                                                        DC_STOP;<br />                                                        _delay_ms(3000);<br />                                                        }<br /> <br />                                         }<br />                                }<br />                                else<br />                                {<br />                                         if (key_down)<br />                                         {<br />                                         _delay_ms(80);<br />                                                       if (key_down)<br />                                                        {<br />                                                        DC_PRAWO;<br />                                                        _delay_ms(5000);<br />                                                        DC_STOP;<br />                                                        _delay_ms(3000);<br />                                                        }<br />                                         }<br />                                }<br />                      i = i + 1;<br />                 }<br />}[/syntax]<br /><br />Według mnie powinno hulać już, poprawiłem lekko kod, no bo zmienna zwiększa się za każdym razem nie zależnie od warunku <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />i % 2 == 0 - to sprawdza czy i jest parzyste <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />% to dzielenie modulo, czyli wynikiem jest reszta z dzielenia. Jeżeli liczba jest parzysta, to liczba z dzielenia przez dwa jest równa zero, w przeciwnym wypadku jest równa 1.<br />Jeżeli chodzi o stronę elektroniczną, pytaj starszych Kolegów <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />Zastanawiam się tylko nad tym, jak wyczerpie się zakres, który obsługuje tę zmienną. Co wtedy się stanie? Czy koło się zamknie i znowu zostanie liczona od 0 ta zmienna?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2204">Waszek</a> — 10 gru 2013, o 18:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Camillo123]]></name></author>
<updated>2013-12-10T16:57:24+01:00</updated>
<published>2013-12-10T16:57:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60433#p60433</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60433#p60433"/>
<title type="html"><![CDATA[Re: Obroty silnika a Micro Switch]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60433#p60433"><![CDATA[
Witam,<br />jeszcze raz poprawiłem kod. Czy teraz jest on poprawny? Z góry dziękuje.<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /> <br />#define WE_A PC7<br />#define WE_B PC6<br /> <br />#define DC_PRAWO PORTC &amp;= ~(1&lt;&lt;WE_A); PORTC |= (1&lt;&lt;WE_B)<br />#define DC_LEWO PORTC |= (1&lt;&lt;WE_A); PORTC &amp;= ~(1&lt;&lt;WE_B)<br />#define DC_STOP PORTC &amp;= ~(1&lt;&lt;WE_A); PORTC &amp;= ~(1&lt;&lt;WE_B)<br />#define key_pin (1&lt;&lt;PC0)<br />#define key_down !(PINC &amp; key_pin)<br /> <br />int main (void){<br />        DDRC |= (1&lt;&lt;WE_A) | (1&lt;&lt;WE_B);<br />DDRC &amp;= ~key_pin;<br />PORTC |= key_pin;<br />uint8_t i=1;<br />while(1)<br />{<br />if(i%1==0)<br />{<br />if (key_down)<br />{_delay_ms(80);<br />if (key_down)<br />{<br />DC_LEWO;<br />_delay_ms(5000);<br />DC_STOP;<br />_delay_ms(3000);<br />}<br /> <br />}<br />i=i+1;<br />}<br />else<br />                {<br />if (key_down)<br />{_delay_ms(80);<br />if (key_down)<br />{<br />DC_PRAWO;<br />_delay_ms(5000);<br />DC_STOP;<br />_delay_ms(3000);<br />}<br /> <br />}<br />i=i+1;<br />}<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2197">Camillo123</a> — 10 gru 2013, o 16:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xor]]></name></author>
<updated>2015-11-06T14:23:52+01:00</updated>
<published>2013-12-10T16:45:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60430#p60430</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60430#p60430"/>
<title type="html"><![CDATA[Re: Obroty silnika a Micro Switch]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60430#p60430"><![CDATA[
<span style="color: #BFFFBF">.</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1774">xor</a> — 10 gru 2013, o 16:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Camillo123]]></name></author>
<updated>2013-12-10T14:35:29+01:00</updated>
<published>2013-12-10T14:35:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60408#p60408</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60408#p60408"/>
<title type="html"><![CDATA[Re: Obroty silnika a Micro Switch]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60408#p60408"><![CDATA[
Witam,<br />udało mi się napisać program bez błędów i ostrzeżeń  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /> <br />#define WE_A PC7<br />#define WE_B PC6<br /> <br />#define DC_PRAWO PORTC &amp;= ~(1&lt;&lt;WE_A); PORTC |= (1&lt;&lt;WE_B)<br />#define DC_LEWO PORTC |= (1&lt;&lt;WE_A); PORTC &amp;= ~(1&lt;&lt;WE_B)<br />#define DC_STOP PORTC &amp;= ~(1&lt;&lt;WE_A); PORTC &amp;= ~(1&lt;&lt;WE_B)<br />#define key_pin (1&lt;&lt;PC0)<br />#define key_down !(PINC &amp; key_pin)<br /> <br />int main (void){<br />        DDRC |= (1&lt;&lt;WE_A) | (1&lt;&lt;WE_B);<br />DDRC &amp;= ~key_pin;<br />PORTC |= key_pin;<br />uint8_t i=0;<br />while (i==i+1)<br />{<br /><br />if (i%1==0)<br />                {<br />if (key_down)<br />{_delay_ms(80);<br />if (key_down)<br />{<br />DC_LEWO;<br />_delay_ms(5000);<br />DC_STOP;<br />_delay_ms(3000);<br />}<br /> <br />}<br />}<br />else<br />                {<br />if (key_down)<br />{_delay_ms(80);<br />if (key_down)<br />{<br />DC_PRAWO;<br />_delay_ms(5000);<br />DC_STOP;<br />_delay_ms(3000);<br />}<br /> <br />}<br />}<br />}<br />}[/syntax]<br />Dzięki wielkie za pomoc  <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=2197">Camillo123</a> — 10 gru 2013, o 14:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Waszek]]></name></author>
<updated>2013-12-09T23:46:12+01:00</updated>
<published>2013-12-09T23:46:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60374#p60374</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60374#p60374"/>
<title type="html"><![CDATA[Re: Obroty silnika a Micro Switch]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60374#p60374"><![CDATA[
Kolego Camillo123 <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Na początku spróbuj sobie wyjaśnić jak to ma działać <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Masz na początku licznik i = 0. Ważne słowa 'na początku' <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> dalej w nieskończonej pętli while z każdym jej obrotem następuje inkrementacja - wartość licznika zwiększa się o 1 za każdym kółkiem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> za każdym obrotem pętli automatycznie jest sprawdzany warunek, czy wartość licznika jest nieparzysta ( i % 2 == 1 ). Jeżeli tak, to mają się wykonać określone instrukcje <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Spróbuj przeanalizować swój program z moim tokkem myślenia i odpowiednio go naprawić <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Lekka modyfikacja i będzie fruwało w tym miejscu <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br />Pozdrawiam <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />Waszek<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2204">Waszek</a> — 9 gru 2013, o 23:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-12-09T22:34:47+01:00</updated>
<published>2013-12-09T22:34:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60370#p60370</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60370#p60370"/>
<title type="html"><![CDATA[Re: Obroty silnika a Micro Switch]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60370#p60370"><![CDATA[
no niestety totalnie źle - tzn kolega nie do końca rozumie jak stosuje się po prostu tak podstawowe słowa kluczowe języka C jak warunki IF <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />w skrócie<br /><br />if( wyrażenie ) ....zrób_coś....<br /><br />czyli jeśli wyrażenie jest prawdziwe to wykonaj to co jest dalej<br /><br />przy czym wyrażenie logiczne może być proste lub złożone. Jeśli proste to np:<br /><br />if( a == c ) ....<br /><br />a jeśli złożone to stosujemy operatory logiczne np  &amp;&amp; lub ||<br /><br />if( a==c &amp;&amp; w==2 ) ....<br /><br />czyli jeśli a jest równe c a także w jest równe 2 to spełnij warunek<br /><br />tymczasem kolega powpisywał w nawiasach jakieś przedziwne rzeczy niestety <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> no i stąd równie przedziwny komunikat<br /><br />posiada może kolega Blueboka ?<br /><br /><!-- m --><a class="postlink" href="http://atnel.pl/mikrokontrolery-avr-jezyk-c.html" >http://atnel.pl/mikrokontrolery-avr-jezyk-c.html</a><!-- m --><br /><br />jeśli nie to polecam od niego zacząć, myślę, że wiele rzeczy się w głowie wyjaśni - nie tylko warunki if<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 9 gru 2013, o 22:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Camillo123]]></name></author>
<updated>2013-12-09T21:55:58+01:00</updated>
<published>2013-12-09T21:55:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60363#p60363</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60363#p60363"/>
<title type="html"><![CDATA[Re: Obroty silnika a Micro Switch]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60363#p60363"><![CDATA[
Chodzi o to:<br />jeżeli liczba przyciśnięć Micro Switch'a jest nieparzysta to jest wykonywana ta instrukcja, z każdym kliknięciem &quot;i&quot; (liczba przyciśnięć) zwiększ się o jeden, a początkowo wynosi 0.<br />Bardzo prawdopodobne, że to źle zapisałem <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=2197">Camillo123</a> — 9 gru 2013, o 21:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-12-09T21:44:07+01:00</updated>
<published>2013-12-09T21:44:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60361#p60361</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60361#p60361"/>
<title type="html"><![CDATA[Re: Obroty silnika a Micro Switch]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60361#p60361"><![CDATA[
<div class="quotetitle">Camillo123 napisał(a):</div><div class="quotecontent"><br />if (i=0 (i%1==0) (i=i+1))<br /></div><br /><br />to spróbuj wytłumaczyć co ma niby robić ta linia ? może jak rozwiniesz to - to sam sobie nawet odpowiesz, a jak nie to oczywiście pomożemy <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 9 gru 2013, o 21:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Camillo123]]></name></author>
<updated>2013-12-09T21:36:50+01:00</updated>
<published>2013-12-09T21:36:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60360#p60360</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60360#p60360"/>
<title type="html"><![CDATA[Obroty silnika a Micro Switch]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5092&amp;p=60360#p60360"><![CDATA[
Witam,<br />napisałem program do starowania silnika tak, aby po 1. wciśnięciu przyciska obroty były lewe, a po 2. prawe i analogicznie później. Miałem kilka błędów, ale udało mi się z nimi uporać, ale z tym nie:<br /><br />Compiling C: silnik.c<br />avr-gcc -c -mmcu=atmega16 -I. -gdwarf-2 -DF_CPU=1000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./silnik.lst  -std=gnu99 -MMD -MP -MF .dep/silnik.o.d silnik.c -o silnik.o <br />silnik.c: In function 'main':<br /><span style="color: #FF0040">silnik.c:21: error: called object '0' is not a function</span><br />make.exe: *** [silnik.o] Error 1<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /> <br />#define WE_A PC7<br />#define WE_B PC6<br /> <br />#define DC_PRAWO PORTC &amp;= ~(1&lt;&lt;WE_A); PORTC |= (1&lt;&lt;WE_B)<br />#define DC_LEWO PORTC |= (1&lt;&lt;WE_A); PORTC &amp;= ~(1&lt;&lt;WE_B)<br />#define DC_STOP PORTC &amp;= ~(1&lt;&lt;WE_A); PORTC &amp;= ~(1&lt;&lt;WE_B)<br />#define key_pin (1&lt;&lt;PC0)<br />#define key_down !(PINC &amp; key_pin)<br /> <br />int main (void){<br />        DDRC |= (1&lt;&lt;WE_A) | (1&lt;&lt;WE_B);<br />DDRC &amp;= ~key_pin;<br />PORTC |= key_pin;<br />uint8_t i;<br />while(1)<br />{<br /><br />if (i=0 (i%1==0) (i=i+1))<br />                {<br />if (key_down)<br />{_delay_ms(80);<br />if (key_down)<br />{<br />DC_LEWO;<br />_delay_ms(5000);<br />DC_STOP;<br />_delay_ms(3000);<br />}<br /> <br />}<br />}<br />else<br />                {<br />if (key_down)<br />{_delay_ms(80);<br />if (key_down)<br />{<br />DC_PRAWO;<br />_delay_ms(5000);<br />DC_STOP;<br />_delay_ms(3000);<br />}<br /> <br />}<br />}<br />}<br />}[/syntax]<br />Z góry dziękuje <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=2197">Camillo123</a> — 9 gru 2013, o 21:36</p><hr />
]]></content>
</entry>
</feed>