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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-12-08T11:19:22+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=5061&amp;mode</id>
<entry>
<author><name><![CDATA[Morcinek92]]></name></author>
<updated>2013-12-08T11:19:22+01:00</updated>
<published>2013-12-08T11:19:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5061&amp;p=60062#p60062</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5061&amp;p=60062#p60062"/>
<title type="html"><![CDATA[Re: sterowanie silnikiem DC poprzez RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5061&amp;p=60062#p60062"><![CDATA[
Dziękuję właśnie o to chodziło <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br /><br />Jeszcze mam pytanie odnośnie tego fragmentu:<br /><br />[syntax=c]/* jeśli wciśnięty konkretny  */<br />                        if      ( !address &amp;&amp; vol_up==command ) {<br />                                lcd_locate(1,4);<br />                                lcd_str(&quot;Prawo&quot;);       /* wyświetl jego nazwę */<br />                                DC_PRAWO;<br />                                }<br /> <br />                        if      ( !address &amp;&amp; vol_down==command ){<br />                                lcd_locate(1,5);<br />                                lcd_str(&quot;Lewo&quot;);        /* wyświetl jego nazwę */<br />                                DC_LEWO;<br />                                }<br />                        if      ( !address &amp;&amp; prog_up==command ){<br />                                lcd_locate(1,5);<br />                                lcd_str(&quot;Przod&quot;);       /* wyświetl jego nazwę */<br />                                DC_PRZOD;<br />                                }<br />                        if      ( !address &amp;&amp; prog_down==command ){<br />                                lcd_locate(1,5);<br />                                lcd_str(&quot;Tyl&quot;); /* wyświetl jego nazwę */<br />                                DC_TYL;<br />                                }<br />                        if      ( !address &amp;&amp; button_ok==command ){<br />                                lcd_locate(1,5);<br />                                lcd_str(&quot;StoP&quot;);        /* wyświetl jego nazwę */<br />                                DC_STOP;<br />                                }<br /> <br />                else {<br />                                lcd_locate(1,10);<br />                                lcd_str(&quot;      &quot;);      /* jeśli inny skasuj pole */<br />                                }[/syntax]<br /><br />Idzie to jakoś szybciej zapisać  ? Zamiast ciągle if, if , if...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=903">Morcinek92</a> — 8 gru 2013, o 11:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morcinek92]]></name></author>
<updated>2013-12-08T11:16:40+01:00</updated>
<published>2013-12-08T09:44:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5061&amp;p=60056#p60056</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5061&amp;p=60056#p60056"/>
<title type="html"><![CDATA[sterowanie silnikiem DC poprzez RC5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5061&amp;p=60056#p60056"><![CDATA[
Witam <br />Może mi ktoś powiedzieć co trzeba dopisać, poprawić w tym kodzie ?<br /><br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 2010-09-13<br /> *       Autor: Mirosław Kardaś<br /> */<br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;LCD/lcd44780.h&quot;<br />#include &quot;IR_DECODE/ir_decode.h&quot;<br /><br />/* przydatne definicje pinów sterujących */<br />#define M1_1 PD1<br />#define M1_2 PD0<br />#define M2_1 PD2<br />#define M2_2 PD3<br /><br />/* definicje poleceń sterujących pracą silnika */<br />#define DC_PRZOD PORTD &amp;= ~(1&lt;&lt;M1_1)|(1&lt;&lt;M2_2); PORTD |= (1&lt;&lt;M1_2)|(1&lt;&lt;M2_1)<br />#define DC_TYL PORTD |= (1&lt;&lt;M1_1)|(1&lt;&lt;M2_2); PORTD &amp;= ~(1&lt;&lt;M1_2)|(1&lt;&lt;M2_1)<br />#define DC_STOP PORTD &amp;= ~(1&lt;&lt;M1_1)|(1&lt;&lt;M2_1); PORTD &amp;= ~(1&lt;&lt;M1_2)|(1&lt;&lt;M2_2)<br />#define DC_LEWO PORTD &amp;= ~(1&lt;&lt;M1_1)|(1&lt;&lt;M2_1);PORTD |= (1&lt;&lt;M1_2)|(1&lt;&lt;M2_2)<br />#define DC_PRAWO PORTD &amp;= ~(1&lt;&lt;M1_2)|(1&lt;&lt;M2_2);PORTD |= (1&lt;&lt;M1_1)|(1&lt;&lt;M2_1)<br /><br /><br />int main(void) {<br /><br /><br />/* ustawiamy piny sterujące L293D jako wyjścia */<br />DDRD |= (1&lt;&lt;M1_1)|(1&lt;&lt;M1_2)|(1&lt;&lt;M2_1)|(1&lt;&lt;M2_2);<br /><br /><br />DDRA |= (1&lt;&lt;PA7);<br />PORTA |= (1&lt;&lt;PA7); /* podświetlenie wyświetlacza LCD */<br /><br />lcd_init();/* inicjalizacja LCD */<br />ir_init();/* inicjalizacja dekodowania IR */<br /><br />sei();/* włączamy globalne przerwania */<br /><br />lcd_locate(0,5);<br />lcd_str_P(PSTR(&quot;Majbach&quot;)); /* wyświetl napis w zerowej linii LCD */<br /><br />/* pętla nieskończona */<br />while(1) {<br /><br />if(Ir_key_press_flag) {/* jeśli odebrano prawidłowe kody z pilota */<br /><br /><br />/* jeśli wciśnięty konkretny  */<br />if( !address &amp;&amp; vol_up==command ) {<br />lcd_locate(1,4);<br />lcd_str(&quot;Prawo&quot;);/* wyświetl jego nazwę */<br />DC_PRAWO;<br />}<br /><br />if( !address &amp;&amp; vol_down==command ){<br />lcd_locate(1,5);<br />lcd_str(&quot;Lewo&quot;);/* wyświetl jego nazwę */<br />DC_LEWO;<br />}<br />if( !address &amp;&amp; prog_up==command ){<br />lcd_locate(1,5);<br />lcd_str(&quot;Przod&quot;);/* wyświetl jego nazwę */<br />DC_PRZOD;<br />}<br />if( !address &amp;&amp; prog_down==command ){<br />lcd_locate(1,5);<br />lcd_str(&quot;Tyl&quot;);/* wyświetl jego nazwę */<br />DC_TYL;<br />}<br />if( !address &amp;&amp; button_ok==command ){<br />lcd_locate(1,5);<br />lcd_str(&quot;StoP&quot;);/* wyświetl jego nazwę */<br />DC_STOP;<br />}<br /><br />else {<br />lcd_locate(1,10);<br />lcd_str(&quot;      &quot;);/* jeśli inny skasuj pole */<br />}<br /><br />/* wyzerowanie flagi odbioru oraz wartości odebranych kodów */<br />Ir_key_press_flag=0;<br />command=0xff;<br />address=0xff;<br />}<br /><br />}<br />}[/syntax]<br /><br /><br />Mianowicie chodzi mi o to gdy wcisnę przycisk na pilocie np. 1 silniki ruszają oba do przodu, gdy wcisnę klawisz 2 (jazda do tyłu) rusza w tedy tylko jeden silnik do tyłu a drugi stoi w miejscu. Lecz po resecie procesora i wciśnięciu klawisza 2 oba silniki kręcą się do tyłu a po wciśnięciu 1 (jazda do przodu) jeden silnik się nie kreci a drugi prawidłowo do przodu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=903">Morcinek92</a> — 8 gru 2013, o 09:44</p><hr />
]]></content>
</entry>
</feed>