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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2012-06-04T14:19:59+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=3&amp;t=1140&amp;mode</id>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2012-06-04T14:19:59+01:00</updated>
<published>2012-06-04T14:19:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1140&amp;p=7467#p7467</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1140&amp;p=7467#p7467"/>
<title type="html"><![CDATA[Re: Enkoder inkrementalny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1140&amp;p=7467#p7467"><![CDATA[
A tam zaraz mistrz .... siejecie panie kolego tu plotki i pomówienia <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Znam te enkodery co zaprezentowałeś kolego Pic14kk można rzec z autopsji  poronione ustrojstwo <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />nie wiem czy mój kod zadziała z nim, choć powinien. Poszukam jak znajdę to mam do nich notę gdzieś <br />w zakładzie <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> stosowane były w siłownikach obrotnicy płatów.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 4 cze 2012, o 14:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[KoreX]]></name></author>
<updated>2012-06-04T14:16:39+01:00</updated>
<published>2012-06-04T14:16:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1140&amp;p=7464#p7464</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1140&amp;p=7464#p7464"/>
<title type="html"><![CDATA[Re: Enkoder inkrementalny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1140&amp;p=7464#p7464"><![CDATA[
A dokładniej umieścił go tutaj : <!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic817.html" >topic817.html</a><!-- l --><br />a kod którego używam ja umieściłem tu : <!-- l --><a class="postlink-local" href="http://forum.atnel.pl/post4977.html#p4977" >post4977.html#p4977</a><!-- l --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=229">KoreX</a> — 4 cze 2012, o 14:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-06-04T14:00:22+01:00</updated>
<published>2012-06-04T14:00:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1140&amp;p=7460#p7460</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1140&amp;p=7460#p7460"/>
<title type="html"><![CDATA[Re: Enkoder inkrementalny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1140&amp;p=7460#p7460"><![CDATA[
Dobre rozwiązanie na obsługę enkoderów podał gdzieś tu na forum nasz kolega mistrz w tym zakresie - SunRiver - poszukaj tej jego funkcji i popatrz, porównaj, przetestuj.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 4 cze 2012, o 14:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Pic14kk]]></name></author>
<updated>2012-06-04T13:01:38+01:00</updated>
<published>2012-06-04T13:01:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1140&amp;p=7455#p7455</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1140&amp;p=7455#p7455"/>
<title type="html"><![CDATA[Enkoder inkrementalny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1140&amp;p=7455#p7455"><![CDATA[
Witam.<br />Enkoder z otworem wygląda następująco (nie posiadam, żadnej noty pdf...)<br />Przypuszczam, że jest to enkoder inkrementalny z wyjściem pojedynczym - sygnały A,B (TTL, Push-Pull, otwarty kolektor).<br /><br /><img src="http://img854.imageshack.us/img854/9044/dsc00288bq.jpg" alt="Obrazek" /><br /><br />Sposób podłączenia:<br /><br /><img src="http://img232.imageshack.us/img232/29/schematol.jpg" alt="Obrazek" /><br /><br />Jak enkoder kreci sie w jedna strone, zmienna &quot;ile&quot;ta jest zwiekszana, jak w druga - jest zmniejszana. <br /><br /><br />Inkrementacja zmiennej ile powoduje zmianę stanu diody, definicją LED1_TOG. Dioda podłączona do portu  PA7.<br /><br />Dekrementacja zmiennej ile powoduje zmienię stanu diody , definicją LED2_TOG .Dioda podłączona do portu  PA6.<br /><br />Taka jest teoria...<br /><br />Kod programu:<br />MAIN.C<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 2012-06-03<br /> *       Autor: Wera Piotr<br /> */<br />#include &lt;avr/io.h&gt;// dołączenie głównego systemowego  pliku nagłówkowego<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br /><br /><br />#include &quot;enkoder.h&quot;// dołączenie naszego pliku nagłówkowego (obsługa LED)<br /><br />int main(void)<br />{<br /><br />enkoder_init();   // inicjalizacja wyświetlacza multipleksowanego<br /><br /><br />sei();// włączenie globalnego zezwolenia na przerwania<br /><br /><br />//**********************  pętla główna<br />while(1)<br />{<br /><br /><br />}<br />}<br /><br />[/syntax]<br /><br />ENKODER.H<br /><br />[syntax=c]/*<br /> * enkoder.h<br /> *<br /> *  Created on: 2012-06-03<br /> *        Autor: Piotr Wera<br /> */<br /><br />#ifndef _enkoder_h<br />#define _enkoder_h<br /><br /><br /><br />// Definicje dla diody<br />#define LED1_PIN (1&lt;&lt;PA7);<br />#define LED2_PIN (1&lt;&lt;PA6);<br /><br />#define LED1_TOG PORTA ^= ~LED1_PIN;<br />#define LED2_TOG PORTA ^= ~LED2_PIN;<br /><br />// definicje dla enkodera<br />#define ENK_1 (1&lt;&lt;PC5);<br />#define ENK_2 (1&lt;&lt;PC4);<br /><br /><br />//Zmienna inkrementarna<br />extern volatile uint8_t ile;<br />//Tymczasowa wartosc<br />extern volatile uint8_t Temp_A;<br /><br /><br /><br />void enkoder_init(void);<br /><br />#endif// koniec _enkoder_h<br /><br />[/syntax]<br /><br />ENKODER.C<br />[syntax=c]/*<br /> * enkoder.c<br /> *<br /> *  Created on: 2012-06-03<br /> *        Autor: Piotr Wera<br /> */<br />#include &lt;avr/io.h&gt;// dołączenie głównego systemowego  pliku nagłówkowego<br />#include &lt;avr/interrupt.h&gt;// dołączenie pl. nagłówkowego potrzebnego do obsł. przerwań<br /><br /><br />#include &quot;enkoder.h&quot;<br /><br /><br />volatile uint8_t Temp_A;<br /><br /><br /><br />void enkoder_init(void)<br />{<br />DDRA |= LED1_PIN | LED2_PIN;<br />PORTC|= ENK_1 |ENK_2;<br />PORTA|=LED1_PIN | LED2_PIN;<br /><br />// ustawienie TIMER0<br />TCCR0 |= (1&lt;&lt;WGM01);// tryb CTC<br />TCCR0 |= (1&lt;&lt;CS02)|(1&lt;&lt;CS00);// preskaler = 1024<br />OCR0 = 39;// dodatkowy podział przez 39 (rej. przepełnienia)<br />TIMSK |= (1&lt;&lt;OCIE0);// zezwolenie na przerwanie CompareMatch<br />}<br /><br /><br />// ================= PROCEDURA OBSŁUGI PRZERWANIA – COMPARE MATCH<br />ISR(TIMER0_COMP_vect)<br />{<br />static uint8_t ile=100;// zmienna do zliczania<br /><br /><br />if((PINC &amp; ENK_1) != Temp_A){<br />if(PINC &amp; ENK_1)!=(PINC &amp; ENK_2){<br />ile++;<br />LED1_TOG;<br /><br />}<br />else{<br />ile--;<br />LED2_TOG;<br />}<br />Temp_A=(PINC &amp; ENK_1);<br /><br /><br />}<br />}<br /><br />[/syntax]<br /><br />I teraz pytania.<br />1) Ile mam błędów? Dlaczego mi to nie zadziała? ( :<br />2) Czy wyjscia A i B mogę podłączyć zgodnie ze schematem? Czy muszę dodać oporniki?<br />3) Częstotliwość sprawdzania stanu tych wejsc musi być conajmniej dwa razy większa od maksymalnej czetotliwosci pojawiania się impulsów na wyjściach z enkodera?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=152">Pic14kk</a> — 4 cze 2012, o 13:01</p><hr />
]]></content>
</entry>
</feed>