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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2018-10-28T13:18:10+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=21459&amp;mode</id>
<entry>
<author><name><![CDATA[wojciechgorzolka]]></name></author>
<updated>2018-10-28T13:18:10+01:00</updated>
<published>2018-10-28T13:18:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213079#p213079</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213079#p213079"/>
<title type="html"><![CDATA[Re: obsługa enkodera według kodu z internetu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213079#p213079"><![CDATA[
No dobra. Przekonałeś mnie . Dzisiaj biorę się za wskaźniki<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14082">wojciechgorzolka</a> — 28 paź 2018, o 13:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2018-10-28T13:01:15+01:00</updated>
<published>2018-10-28T13:01:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213077#p213077</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213077#p213077"/>
<title type="html"><![CDATA[Re: obsługa enkodera według kodu z internetu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213077#p213077"><![CDATA[
czyli będziesz potrzebował zmieniać wybiórczo przynajmniej cztery zmienne jednym enkoderem.<br />może niech funkcja enkoderek zwraca +1, 0, -1. i można by dodawać tę zwróconą wartość do wybranej zmiennej.?<br />a może wskaznik na zmienną jako argument funkcji, który będzie wskazywał na wybraną zmienną. ?<br />I znowu idziemy w kierunku wskaźników. <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=11549">Daro69</a> — 28 paź 2018, o 13:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wojciechgorzolka]]></name></author>
<updated>2018-10-28T12:44:12+01:00</updated>
<published>2018-10-28T12:44:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213076#p213076</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213076#p213076"/>
<title type="html"><![CDATA[Re: obsługa enkodera według kodu z internetu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213076#p213076"><![CDATA[
Dziękuję za wskazówki. Plan jest. Czekam na ramię robota z aliexpress, sterowane czterema serwami. W reklamie ramienia bylo wykorzystane arduino. Ja jednak nie znam sie na tamtej platformie, więc postanowiłem edukacyjnie podejść do tematu i napisać kod od podstaw , w miarę swoich skromnych umiejętności. W wszystko idzie w dobrą stronę:). Sterować serwami będę tylko jednym enkoderem z przyciskiem. Będę zmieniał wartość zmiennej. Do każdej wartości zmiennej będzie przypisane oddzielne serwo robota. Długa droga jeszcze przede mną do ukończenia projektu edukacyjnego. <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=14082">wojciechgorzolka</a> — 28 paź 2018, o 12:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2018-10-28T11:48:23+01:00</updated>
<published>2018-10-28T11:48:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213075#p213075</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213075#p213075"/>
<title type="html"><![CDATA[Re: obsługa enkodera według kodu z internetu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213075#p213075"><![CDATA[
hejo,<br />widzę postępy. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />ale żeby nie było za słodko, mam pytanie.  <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> <br />1. w jakim celu w linijce 60 uciekasz z pętli, skoro else i tak się nie wykona jeżeli jest spełniony if?<br />2. patrzę na zmienną uint8_t i ma kojarzącą się z char'em nazwę text. pomimo dowolności nazw, warto nadawać takie które ułatwiają analizowanie kodu. <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />3. funkcja enkoderek zwraca uint8_t, póki co jeszcze kod z tego zwrotu wartości zmiennej 'text' nie korzysta.<br />(jakiś plan, czy to tak za namową, dla wprawy w ramach zabawy z funkcjami? )<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11549">Daro69</a> — 28 paź 2018, o 11:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wojciechgorzolka]]></name></author>
<updated>2018-10-27T20:25:39+01:00</updated>
<published>2018-10-27T20:25:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213068#p213068</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213068#p213068"/>
<title type="html"><![CDATA[Re: obsługa enkodera według kodu z internetu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213068#p213068"><![CDATA[
hej ludziska. Wrzucam wstępnie działający kod. Co prawda znów poświęciłem na niego dłuższą część swojego wolnego dnia, ale nie żałuję. Po konsultacji z Darko69, kod zaczął działać. Teraz mogę enkoderem &quot;wrzucić&quot; w tablicę wartości liczbowe uint8_t.<br />Np mogę zapełnić tablicę tab[20]= {1,2,3,4,5,4,3,2,1} i po naciśnięciu klawisza na atb cyfry te zostaną wyświetlone co pół sekundy. w zależności jakiego delaja wrzucę. Oczywiście to nie koniec, ponieważ muszę dopracować kod tak, aby tablica była (ruchoma), tak aby nie wypełniała się zerami gdy ją całą nie zapełnię, oraz aby nie przepełnić jej zakresu, bo wtedy cuda się dzieją.<img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />a oto kodzik <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;string.h&gt;<br /><br />#include &quot;LCD/lcd44780.h&quot;<br /><br />#define KLAWISZ_1 (1&lt;&lt;PD0)<br /><br />#define co_ile 2<br />#define dlugosc_tablicy 20<br />uint8_t enkoderek();<br /><br />//int koszyk&#91;10&#93;;<br /> uint8_t aktualny;<br /> uint8_t poprzedni;<br /> uint8_t enkoder=0;<br /> uint8_t text;<br /> uint8_t tab1&#91;&#93; = {2,0,3,1};<br /> uint8_t tab&#91;dlugosc_tablicy+1&#93;;<br /> //uint8_t TAB&#91;11&#93;;<br /> uint8_t i;<br /> uint8_t l;<br /> uint8_t pre;<br /><br />int main(void){<br />DDRC |= 0xFF;<br /><br /><br />        DDRD |= (1&lt;&lt;PD7);<br />        PORTD |= (1&lt;&lt;PD7); //podświetlenie LED<br /><br />        PORTA |= (1&lt;&lt;PA0);//pin A encodera<br />        PORTA |= (1&lt;&lt;PA1);//pin B encodera<br /><br />        DDRD &amp;= ~KLAWISZ_1;<br />        PORTD |= KLAWISZ_1;<br /><br />        lcd_init();<br />        lcd_str(&quot;start..&quot;);<br />        _delay_ms(50);<br /><br />        sei();<br /><br />        while(1){<br /><br /><br />        PORTC = ~enkoderek();<br />        //i = enkoderek();<br /><br />        if(!(PIND &amp; KLAWISZ_1)){<br />        for(i=0 ; i&lt;dlugosc_tablicy ; i++){<br />        lcd_locate(1,0);<br />        lcd_int( tab&#91;i&#93; );<br />        _delay_ms(200);<br /><br />        }<br />        continue;<br />        }<br />         else{<br />                        lcd_locate(1,0);<br />                        lcd_str( &quot;       &quot;);<br />                        }<br />        }<br />}<br /><br />uint8_t enkoderek(){<br /><br />static uint8_t index_tablicy=0; // &lt;-------<br />//uint8_t tab&#91;index_tablicy&#93;;<br /><br />    aktualny = PINA &amp; 3;//do zmiennej &quot;aktualny&quot; przypisuję aktualną pozycję blaszki enkodera<br />    if (aktualny != poprzedni){//jeśli altuala pozycja enkodera nie równa się poprzedniej<br />            if( tab1&#91;aktualny&#93; == poprzedni){//do tablicy wrzucam aktualną pozycję jednej blaszki enkodera<br />               enkoder++;<br />               if ((enkoder % 4)==0)  text++;<br />               if( text &gt; 10 ) text=10;<br />            }<br />            else{<br />                enkoder--;<br />                if ((enkoder % 4)==0)  text--;<br />                if( text == 255 ) text=0;<br />            }<br />            poprzedni = aktualny;//przylisuję w zmienną &quot;poprzednmi&quot; nową, aktualną wartośc<br /><br />            if((enkoder % 4)==0){<br /><br />            tab&#91;index_tablicy&#93; = text;<br />            if(index_tablicy &lt; dlugosc_tablicy)//&lt;-----<br />                       index_tablicy++;<br />            }// &lt;-------<br />    }<br /><br />    return text;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14082">wojciechgorzolka</a> — 27 paź 2018, o 20:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2018-10-26T21:01:05+01:00</updated>
<published>2018-10-26T21:01:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213044#p213044</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213044#p213044"/>
<title type="html"><![CDATA[Re: obsługa enkodera według kodu z internetu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213044#p213044"><![CDATA[
w linijce 87-88, powinienem wpisać zliczanie indexu co 4, tak jak text++; co 4. if enkoder % 4 .... <br />tuż przed - &quot;tab[index_tablicy] = text;<br />a na końcu wystarczy &quot;return text;&quot;<br />jakoś tak. <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=11549">Daro69</a> — 26 paź 2018, o 21:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wojciechgorzolka]]></name></author>
<updated>2018-10-26T20:12:01+01:00</updated>
<published>2018-10-26T20:12:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213042#p213042</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213042#p213042"/>
<title type="html"><![CDATA[Re: obsługa enkodera według kodu z internetu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213042#p213042"><![CDATA[
[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;string.h&gt;<br /><br />#include &quot;LCD/lcd44780.h&quot;<br /><br />#define KLAWISZ_1 (1&lt;&lt;PD0)<br /><br />#define co_ile 2<br /><br />uint8_t enkoderek();<br /><br />//int koszyk&#91;10&#93;;<br /> uint8_t aktualny;<br /> uint8_t poprzedni;<br /> uint8_t enkoder=0;<br /> uint8_t text;<br /> uint8_t tab1&#91;&#93; = {2,0,3,1};<br /> uint8_t tab&#91;11&#93;;<br /> uint8_t TAB&#91;11&#93;;<br /> uint8_t i;<br /> uint8_t l;<br /> uint8_t pre;<br /><br />int main(void){<br />DDRC |= 0xFF;<br /><br /><br />        DDRD |= (1&lt;&lt;PD7);<br />        PORTD |= (1&lt;&lt;PD7); //podświetlenie LED<br /><br />        PORTA |= (1&lt;&lt;PA0);//pin A encodera<br />        PORTA |= (1&lt;&lt;PA1);//pin B encodera<br /><br />        DDRD &amp;= ~KLAWISZ_1;<br />        PORTD |= KLAWISZ_1;<br /><br />        lcd_init();<br />        lcd_str(&quot;start..&quot;);<br />        _delay_ms(50);<br /><br />        sei();<br /><br />        while(1){<br /><br /><br />        PORTC = ~enkoderek();<br />        i = enkoderek();<br /><br />        if(!(PIND &amp; KLAWISZ_1)){<br />        for(i=enkoderek() ; i&lt;11 ; i++){<br />        lcd_locate(1,0);<br />        lcd_int( i );<br />        _delay_ms(500);<br /><br />        }<br />        continue;<br />        }<br />         else{<br />                        lcd_locate(1,0);<br />                        lcd_str( &quot;       &quot;);<br />                        }<br />        }<br />}<br /><br />uint8_t enkoderek(){<br /><br />static uint8_t index_tablicy=0; // &lt;-------<br /><br />    aktualny = PINA &amp; 3;//do zmiennej &quot;aktualny&quot; przypisuję aktualną pozycję blaszki enkodera<br />    if (aktualny != poprzedni){//jeśli altuala pozycja enkodera nie równa się poprzedniej<br />            if( tab1&#91;aktualny&#93; == poprzedni){//do tablicy wrzucam aktualną pozycję jednej blaszki enkodera<br />               enkoder++;<br />               if ((enkoder % 4)==0)  text++;<br />               if( text &gt; 10 ) text=10;<br />            }<br />            else{<br />                enkoder--;<br />                if ((enkoder % 4)==0)  text--;<br />                if( text == 255 ) text=0;<br />            }<br />            poprzedni = aktualny;//przylisuję w zmienną &quot;poprzednmi&quot; nową, aktualną wartośc<br /><br />            if(index_tablicy &lt; 10)//&lt;-----<br />                       index_tablicy++;  // &lt;-------<br />    }<br /><br />    return tab&#91;index_tablicy&#93; = text;<br />}[/syntax]<br />O to chodziło, ale nie działa, bo gdy przekręcam enkoderem  kolejne pozycje czyli: 0,1,2,3,2,1,0,, to na ekranie mimo wszystko zlicza mi do 10 i kończy pracę <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=14082">wojciechgorzolka</a> — 26 paź 2018, o 20:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2018-10-26T19:59:37+01:00</updated>
<published>2018-10-26T19:59:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213041#p213041</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213041#p213041"/>
<title type="html"><![CDATA[Re: obsługa enkodera według kodu z internetu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213041#p213041"><![CDATA[
<div class="quotetitle">wojciechgorzolka napisał(a):</div><div class="quotecontent"><br />[syntax=c]void enkoderek(void){<br /><br />static uint8_t index_tablicy=0; // &lt;----------------------------------------------------------------------------------------<br /><br />    aktualny = PINA &amp; 3;//do zmiennej &quot;aktualny&quot; przypisuję aktualną pozycję blaszki enkodera<br />    if (aktualny != poprzedni){//jeśli altuala pozycja enkodera nie równa się poprzedniej<br /><br />            if( tab1&#91;aktualny&#93; == poprzedni){//do tablicy wrzucam aktualną pozycję jednej blaszki enkodera<br />               enkoder++;<br />               if ((enkoder % 4)==0)  text++;<br />               if( text &gt; 10 ) text=10;<br />            }<br />            else{<br />                enkoder--;<br />                if ((enkoder % 4)==0)  text--;<br />                if( text == 255 ) text=0;<br />            }<br />            poprzedni = aktualny;//przylisuję w zmienną &quot;poprzednmi&quot; nową, aktualną wartośc<br />            <br />            if(index_tablicy &lt; 19)<br />            index_tablicy++;  // &lt;------------------------------------------------------------------------------------------<br />    }<br /><br />    tab&#91;index_tablicy&#93;= text;  // &lt;-----------------------------------------------------------------------------------------<br /><br />}[/syntax][/syntax]<br /></div><br />nie jestem pewien czy o to chodzi.  <img src="https://forum.atnel.pl/images/smilies/icon_rolleyes.gif" alt=":roll:" title="Udaje, że to nie on" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11549">Daro69</a> — 26 paź 2018, o 19:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wojciechgorzolka]]></name></author>
<updated>2018-10-26T14:18:48+01:00</updated>
<published>2018-10-26T14:18:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213028#p213028</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213028#p213028"/>
<title type="html"><![CDATA[Re: obsługa enkodera według kodu z internetu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213028#p213028"><![CDATA[
Przemyślałem sprawę i poprawiłem funkcję. Na taką, która zwraca wynik. A następnie ten wynik przypisuję do nowej tablicy TAB[10], do której przypisuję funkcję enkoderek(). ? Po naciśnięciu klawisza funkcją zwraca wynik , ale niestety nie zmienia się na ekranie ten wynik co pół sekundy. <br />Tutaj jest funkcja zwracająca :<br />[syntax=c]uint8_t enkoderek(){<br />    aktualny = PINA &amp; 3;//do zmiennej &quot;aktualny&quot; przypisuję aktualną pozycję blaszki enkodera<br />    if (aktualny != poprzedni){//jeśli altuala pozycja enkodera nie równa się poprzedniej<br />            if( tab1&#91;aktualny&#93; == poprzedni){//do tablicy wrzucam aktualną pozycję jednej blaszki enkodera<br />               enkoder++;<br />               if ((enkoder % 4)==0)  text++;<br />               if( text &gt; 10 ) text=10;<br />            }<br />            else{<br />                enkoder--;<br />                if ((enkoder % 4)==0)  text--;<br />                if( text == 255 ) text=0;<br />            }<br />            poprzedni = aktualny;//przylisuję w zmienną &quot;poprzednmi&quot; nową, aktualną wartośc<br />    }<br />    tab&#91;text&#93;= +text;<br /><br />return text;<br />}[/syntax]<br /><br />a tutaj przypisuję wynik funkcji do nowej tablicy dziesięcio elementowej:<br />[syntax=c]while(1){<br /><br />        TAB&#91;10&#93; = enkoderek();<br /><br />        if(!(PIND &amp; KLAWISZ_1)){<br />                lcd_locate(1,0);<br />                lcd_str( &quot;enc: &quot;);<br />                lcd_int( TAB&#91;10&#93;++ );//odczytywanie tablicy co 500ms<br />                lcd_str( &quot;    &quot;);<br />                _delay_ms(500);<br />        }<br />                else{<br />                lcd_locate(1,0);<br />                lcd_str( &quot;       &quot;);<br />                }<br />        }[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14082">wojciechgorzolka</a> — 26 paź 2018, o 14:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wojciechgorzolka]]></name></author>
<updated>2018-10-26T11:59:00+01:00</updated>
<published>2018-10-26T11:59:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213009#p213009</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213009#p213009"/>
<title type="html"><![CDATA[Re: obsługa enkodera według kodu z internetu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213009#p213009"><![CDATA[
haha. Właśnie czytam w trzech książkach jednocześnie na temat wskaźników. <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 55 minutach ]</span></strong><br /><br />Poczytałem trochę o wskaźnikach, ale jeszcze mi to nie wychodzi. Muszę poćwiczyć na bardziej prostym przykładzie.<br /><br />Ale wzbogaciłem mój kod o funkcję, w której chcę wyświetlać zawartość tablicy.<br />Po uruchomieniu programu kręcę enkoderem, aby zapełnić tablicę wartościami właśnie z enkodera.<br />Następnie po  naciśnięciu klawisza na ekranie LCD powinna  wyświetlać się zawartość tablicy,  co 500ms. <br />Oczywiście kod nie działa według moich założeń bo pewnie czegoś mi w nim brakuję. Czy mogę prosić o podpowiedź co powinienem zrobić aby tablica zapełniła się wartościami z enkodera i dlaczego nie wyświetla mi zawartości tablicy po naciśnięciu klawisza?<br />Z góry dziękuję <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 21 paź 2018<br /> *      Author: amaru1<br /> */<br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;string.h&gt;<br /><br />#include &quot;LCD/lcd44780.h&quot;<br /><br />#define KLAWISZ_1 (1&lt;&lt;PD0)<br /><br />#define co_ile 2<br /><br />void enkoderek(void);<br /><br /> int encoder;<br /> uint8_t aktualny;<br /> uint8_t poprzedni;<br /> uint8_t enkoder=0;<br /> uint8_t tab1&#91;&#93; = {2,0,3,1};<br /> uint8_t text;<br /> uint8_t tab&#91;20&#93;;<br /><br /> int pre;<br /><br />int main(void){<br />        DDRD |= (1&lt;&lt;PD7);<br />        PORTD |= (1&lt;&lt;PD7); //podświetlenie LED<br /><br />        PORTA |= (1&lt;&lt;PA0);//pin A encodera<br />        PORTA |= (1&lt;&lt;PA1);//pin B encodera<br /><br />        DDRD &amp;= ~KLAWISZ_1;<br />        PORTD |= KLAWISZ_1;<br /><br />        lcd_init();<br />        lcd_str(&quot;start..&quot;);<br />        _delay_ms(50);<br /><br />        sei();<br /><br />        while(1){<br /><br />        enkoderek();<br /><br />        if(!(PIND &amp; KLAWISZ_1)){<br />                lcd_locate(1,0);<br />                lcd_str( &quot;enc: &quot;);<br />                lcd_int( tab&#91;text&#93;++ );//odczytywanie tablicy co 500ms<br />                lcd_str( &quot;    &quot;);<br />                _delay_ms(500);<br />        }<br />                else{<br />                lcd_locate(1,0);<br />                lcd_str( &quot;       &quot;);<br />                }<br />        }<br />}<br /><br />void enkoderek(void){<br />    aktualny = PINA &amp; 3;//do zmiennej &quot;aktualny&quot; przypisuję aktualną pozycję blaszki enkodera<br />    if (aktualny != poprzedni){//jeśli altuala pozycja enkodera nie równa się poprzedniej<br />            if( tab1&#91;aktualny&#93; == poprzedni){//do tablicy wrzucam aktualną pozycję jednej blaszki enkodera<br />               enkoder++;<br />               if ((enkoder % 4)==0)  text++;<br />               if( text &gt; 10 ) text=10;<br />            }<br />            else{<br />                enkoder--;<br />                if ((enkoder % 4)==0)  text--;<br />                if( text == 255 ) text=0;<br />            }<br />            poprzedni = aktualny;//przylisuję w zmienną &quot;poprzednmi&quot; nową, aktualną wartośc<br />    }<br /><br />    tab&#91;text&#93;= +text;<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14082">wojciechgorzolka</a> — 26 paź 2018, o 11:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2018-10-26T11:53:43+01:00</updated>
<published>2018-10-26T11:53:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213008#p213008</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213008#p213008"/>
<title type="html"><![CDATA[Re: obsługa enkodera według kodu z internetu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213008#p213008"><![CDATA[
<img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Większość linijek jest Twoja,<br />Proponuję teraz przerobić kod na funkcję:<br />Albo zwracającą +1 lub 0 lub -1,<br />Albo z argumentem w formie wskaźnika na zmienną. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />tak dla treningu.<br />delikatnie kuszę w kierunku wskaźników. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Wysłane z mojego Lenovo K33a42 przy użyciu Tapatalka<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11549">Daro69</a> — 26 paź 2018, o 11:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wojciechgorzolka]]></name></author>
<updated>2018-10-26T10:48:35+01:00</updated>
<published>2018-10-26T10:48:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213006#p213006</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213006#p213006"/>
<title type="html"><![CDATA[Re: obsługa enkodera według kodu z internetu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213006#p213006"><![CDATA[
Też mi się podoba. Teraz korzystam z tego,że jestem dzisiaj w domu i prę z &quot;kodzeniem&quot; dalej <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=14082">wojciechgorzolka</a> — 26 paź 2018, o 10:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2018-10-26T10:42:19+01:00</updated>
<published>2018-10-26T10:42:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213004#p213004</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213004#p213004"/>
<title type="html"><![CDATA[Re: obsługa enkodera według kodu z internetu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213004#p213004"><![CDATA[
O, i fajny kodzik wyszedł <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=1922">SylwekK</a> — 26 paź 2018, o 10:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wojciechgorzolka]]></name></author>
<updated>2018-10-26T10:26:40+01:00</updated>
<published>2018-10-26T10:26:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213003#p213003</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213003#p213003"/>
<title type="html"><![CDATA[Re: obsługa enkodera według kodu z internetu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=213003#p213003"><![CDATA[
[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;string.h&gt;<br /><br />#include &quot;LCD/lcd44780.h&quot;<br /><br />#define co_ile 2<br /><br /> int encoder;<br /> uint8_t aktualny;<br /> uint8_t poprzedni;<br /> uint8_t enkoder=0;<br /> uint8_t tab1&#91;&#93; = {2,0,3,1};<br /> uint8_t text;<br /><br /> int pre;<br /><br />int main(void){<br />        DDRD |= (1&lt;&lt;PD7);<br />        PORTD |= (1&lt;&lt;PD7); //podświetlenie LED<br /><br />        PORTA |= (1&lt;&lt;PA0);//pin A encodera<br />        PORTA |= (1&lt;&lt;PA1);//pin B encodera<br /><br />        lcd_init();<br />        lcd_str(&quot;start..&quot;);<br />        _delay_ms(50);<br /><br />        sei();<br /><br />        while(1){<br /><br />                lcd_locate(1,0);<br />                lcd_str( &quot;enc: &quot;);<br />                lcd_int( text );<br />                lcd_str( &quot;    &quot;);<br /><br /><br /><br />                aktualny = PINA &amp; 3;<br />                if (aktualny != poprzedni){<br />                        if( tab1&#91;aktualny&#93; == poprzedni){<br />                           enkoder++;<br />                           if ((enkoder % 4)==0)  text++;<br />                           if( text &gt; 50 ) text=50;<br />                        }<br />                        else{<br />                            enkoder--;<br />                            if ((enkoder % 4)==0)  text--;<br />                            if( text == 255 ) text=0;<br />                        }<br />                poprzedni = aktualny;<br />                }[/syntax]no i kodzik jest. Darek napisał dla mnie kod i dokładnie wytłumaczył o co chodzi. JA dodałem if-y z modulo, ponieważ z kodem pierwotnym Darka zmienna &quot;enkoder&quot; była zliczana nie co tyrknięcie enkodera, tylko przy każdym przejściu blaszek enkodera. Co skutkowało tym,że co tyrknięcie enkodera, wynik zmiennej &quot;enkoder&quot; był większy co cztery <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=14082">wojciechgorzolka</a> — 26 paź 2018, o 10:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2018-10-25T08:05:45+01:00</updated>
<published>2018-10-25T08:05:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=212963#p212963</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=212963#p212963"/>
<title type="html"><![CDATA[Re: obsługa enkodera według kodu z internetu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=212963#p212963"><![CDATA[
Najważniejsze wg mnie jest to że rozumiesz co się dzieje w programie, że systematycznie dodajesz kolejne elementy zagłębiając się w ich działanie i szukasz sposobów na napisanie działającego kodu. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Pomimo że Mirka biblioteki wymiatają i warto je przestudiować i używać,<br />to jednak nie raz natrafisz na elementy do których będziesz musiał kod napisać od podstaw.<br />Wtedy przyda się zarówno wiedza i sposoby które przekazuje Mirek, jak i logika którą właśnie trenujesz pisząc proste ale własne programy. <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Co do wskaźników wszelkiej maści, to sam z czasem odkryjesz ich niezastąpione właściwości i możliwości jakie dają. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Wysłane z mojego Lenovo K33a42 przy użyciu Tapatalka<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11549">Daro69</a> — 25 paź 2018, o 08:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wojciechgorzolka]]></name></author>
<updated>2018-10-24T22:26:29+01:00</updated>
<published>2018-10-24T22:26:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=212959#p212959</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=212959#p212959"/>
<title type="html"><![CDATA[Re: obsługa enkodera według kodu z internetu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=212959#p212959"><![CDATA[
to zależy o którym poradniku piszesz. Bo jeśli chodzi o poradniki w których Pan Mirek używa wskaźników i colbacków, to jest to dla mnie jeszcze za trudne. tak więc nie mogę pójść Twoim tropem. <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=14082">wojciechgorzolka</a> — 24 paź 2018, o 22:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2018-10-23T23:08:05+01:00</updated>
<published>2018-10-23T23:08:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=212920#p212920</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=212920#p212920"/>
<title type="html"><![CDATA[Re: obsługa enkodera według kodu z internetu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=212920#p212920"><![CDATA[
<div class="quotetitle">wojciechgorzolka napisał(a):</div><div class="quotecontent"><br />Oczywiście jest poradnik Pana Mirka. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> ale ja chcę to wszystko zrozumieć <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /></div>A nie próbowałeś takiej metody, że oglądasz poradniki Mirka i słuchasz wszystkiego co Mirek mówi i pokazuje. A potem siadasz i sam robisz bibliotekę? Masz wtedy już trochę ułożone w głowie przez Mirka i tylko musisz tę zdobytą wiedzę przełożyć na swój kod.<br />Takie coś to jest styl jak są uczeni studenci - Mirka poradnik to wykład a Twoje kodowanie to laborka <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />.<br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 23 paź 2018, o 23:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2018-10-23T20:44:34+01:00</updated>
<published>2018-10-23T20:44:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=212910#p212910</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=212910#p212910"/>
<title type="html"><![CDATA[Re: obsługa enkodera według kodu z internetu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=212910#p212910"><![CDATA[
No i za to szacunek <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=1922">SylwekK</a> — 23 paź 2018, o 20:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wojciechgorzolka]]></name></author>
<updated>2018-10-23T20:19:12+01:00</updated>
<published>2018-10-23T20:19:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=212908#p212908</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=212908#p212908"/>
<title type="html"><![CDATA[Re: obsługa enkodera według kodu z internetu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=212908#p212908"><![CDATA[
nie chcę przepisywać, bo jak tak będę robić, to będę przepisywaczem , a nie gościem,który sam potrafi coś napisać:). Mam bibliotekę Pana Mirka, jednak też jej nie używam:). Ja to chcę zrozumieć. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />) ale już mi Darek co nieco rozjaśnił przez telefon <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Oczywiście wszystkim wam jestem wdzięczny za podpowiedzi . Walczę dalej, bo następnym krokiem będzie podłączenie serwa pod enkoderek i pewnie znów będą schody <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />. Oczywiście jest poradnik Pana Mirka. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> ale ja chcę to wszystko zrozumieć <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=14082">wojciechgorzolka</a> — 23 paź 2018, o 20:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2018-10-23T20:10:30+01:00</updated>
<published>2018-10-23T20:10:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=212907#p212907</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=212907#p212907"/>
<title type="html"><![CDATA[Re: obsługa enkodera według kodu z internetu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=212907#p212907"><![CDATA[
W ogóle to o czym piszesz to miej więcej zasada działania mojej biblioteki enkodera <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":-D" title="Bardzo szczęśliwy" /><br />Po co więc wyważać otwarte drzwi. Użyj biblioteki i zajmij się właściwym kodem przesuwania diod. No chyba, że własną chcesz pisać to oczywiście jak najbardziej kombinuj, a może coś z tego fajnego wyjdzie <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=1922">SylwekK</a> — 23 paź 2018, o 20:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wojciechgorzolka]]></name></author>
<updated>2018-10-23T19:06:04+01:00</updated>
<published>2018-10-23T19:06:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=212900#p212900</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=212900#p212900"/>
<title type="html"><![CDATA[Re: obsługa enkodera według kodu z internetu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=212900#p212900"><![CDATA[
a jak mam rozumieć aktualny wynik i poprzednio zapamiętany? z tym zagadnieniem mam kłopot. jak to rozróżnić w kodzie? <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=14082">wojciechgorzolka</a> — 23 paź 2018, o 19:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2018-10-23T18:48:59+01:00</updated>
<published>2018-10-23T18:48:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=212897#p212897</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=212897#p212897"/>
<title type="html"><![CDATA[Re: obsługa enkodera według kodu z internetu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=212897#p212897"><![CDATA[
hejo Wojtek,<br />jeżeli już to trzeba by i tak zamaskować wynik (tak jak Sylwek napisał), i pozostawić aktualny wynik w formie: 0, 1, 2, 3  i podobnie poprzednio zapamiętany, <br />no chyba że napisałeś skrót myślowy w binarce używając do zanotowania dwóch najmłodszych bitów.<br />I bawić się - tak jak piszesz,<br />porównywaniem czy wynikła zmiana w kierunku dodatnim czy ujemnym, jednocześnie kontrolując czy nie nastąpiło &quot;przeskoczenie&quot; o 2, (ominięcie kolejnej pozycji).  <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><br />można różnie rzeźbić. <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=11549">Daro69</a> — 23 paź 2018, o 18:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wojciechgorzolka]]></name></author>
<updated>2018-10-23T17:51:19+01:00</updated>
<published>2018-10-23T17:51:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=212895#p212895</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=212895#p212895"/>
<title type="html"><![CDATA[Re: obsługa enkodera według kodu z internetu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=212895#p212895"><![CDATA[
kolejna cenna rada, dziękuję <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />. Myślałem też o dwóch tablicach jedna z wartościami 00,10,11,01, druga z wartościami 01,11,10,00 . Następnie kręcąc w jedną ze stron  mógłbym porównywać do konkretnej tablicy wynik z enkodera, jeśli wynik zgadzał by się z pierwszą tablicą, to oznaczałoby to,że kręcę w lewo, porównując z drugą tablicą, oznaczało by ,że kręcę w przeciwną stronę. Czy takie rozwiązanie miało by sens?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14082">wojciechgorzolka</a> — 23 paź 2018, o 17:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2018-10-23T10:36:27+01:00</updated>
<published>2018-10-23T10:36:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=212880#p212880</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=212880#p212880"/>
<title type="html"><![CDATA[Re: obsługa enkodera według kodu z internetu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=212880#p212880"><![CDATA[
W uzupełnieniu do PW tu na forum napiszę...<br /><br />1. Przede wszystkim popatrz na enkoder jak na licznik, a nie traktuj tylko jako ruch w lewo/prawo.<br />2. Utwórz zmienną, która będzie liczyła (dodawała lub odejmowała) kolejne kroki.<br />3. W twoim przypadku sprawa jest na tyle prosta, że przemiatając diodą led po 8-bitowym porcie możesz nawet zrezygnować z warunków krańcowych licznika i wykorzystać operację maskowania czyli to co wychodzi na port jest tylko 3-bitową (wartości 0 do 7) końcówką zmiennej, którą modyfikujesz enkoderem. (wynik=zmienna_enc &amp; 0b00000111)<br />4. Pozostało tylko zaprezentować wynik na porcie. Do tego wystarczy jedna prosta funkcja, do której przekazujesz wynik, a która to zapala odpowiedni led w zależności od tego wyniku. Nad tym pomyśl już sam, bo to można zrobić co najmniej na kilka różnych sposobów <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=1922">SylwekK</a> — 23 paź 2018, o 10:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wojciechgorzolka]]></name></author>
<updated>2018-10-22T17:17:07+01:00</updated>
<published>2018-10-22T17:17:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=212864#p212864</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=212864#p212864"/>
<title type="html"><![CDATA[Re: obsługa enkodera według kodu z internetu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21459&amp;p=212864#p212864"><![CDATA[
Dziękuję za wskazówki <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />:). Zaraz się zabieram za poradniki<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14082">wojciechgorzolka</a> — 22 paź 2018, o 17:17</p><hr />
]]></content>
</entry>
</feed>