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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-11-06T18:40:42+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=19549&amp;mode</id>
<entry>
<author><name><![CDATA[micky]]></name></author>
<updated>2017-11-06T18:40:42+01:00</updated>
<published>2017-11-06T18:40:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19549&amp;p=198432#p198432</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19549&amp;p=198432#p198432"/>
<title type="html"><![CDATA[Re: callback - super enkoder avr - pytanie do kodu z poradni]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19549&amp;p=198432#p198432"><![CDATA[
Obejrzyj poradnik Mirka o przesunięciach maskowaniu bitów i najlepiej przeczytaj BlueBooka, bo ed&amp;=3 wcale nie oznacza mnożenia.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1546">micky</a> — 6 lis 2017, o 18:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2017-11-05T23:12:02+01:00</updated>
<published>2017-11-05T23:12:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19549&amp;p=198399#p198399</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19549&amp;p=198399#p198399"/>
<title type="html"><![CDATA[Re: callback - super enkoder avr - pytanie do kodu z poradni]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19549&amp;p=198399#p198399"><![CDATA[
proponuję ci przejść na tę obsługę enkodera:<br /><br /><!-- m --><a class="postlink" href="https://www.youtube.com/watch?v=Xyq3uv108iU" >https://www.youtube.com/watch?v=Xyq3uv108iU</a><!-- m --><br /><!-- m --><a class="postlink" href="https://www.youtube.com/watch?v=5ogumrKqdNI" >https://www.youtube.com/watch?v=5ogumrKqdNI</a><!-- m --><br /><!-- m --><a class="postlink" href="https://www.youtube.com/watch?v=n3bId1cZKz0" >https://www.youtube.com/watch?v=n3bId1cZKz0</a><!-- m --><br /><!-- m --><a class="postlink" href="https://www.youtube.com/watch?v=IP5t_XzfRRM" >https://www.youtube.com/watch?v=IP5t_XzfRRM</a><!-- m --><br /><br />co do pytania to przesunięcia i ile pamiętam związane były z dostosowaniem się do enkoderów pół- i pełno-krokowych w tym podejściu<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 5 lis 2017, o 23:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Mac]]></name></author>
<updated>2017-11-05T23:06:13+01:00</updated>
<published>2017-11-05T23:06:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19549&amp;p=198398#p198398</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19549&amp;p=198398#p198398"/>
<title type="html"><![CDATA[callback - super enkoder avr - pytanie do kodu z poradnika]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19549&amp;p=198398#p198398"><![CDATA[
Witam  - mianowicie chodzi mi o to jak w tym kodzie udostepnionym przez P. Mirka w tym poradniku jak są obliczane, przetwarzane sygnały z enkodera głownie chodzi mi funkcje event- podaje kod:<br /><br /><br />[syntax=c]void ENCODER_EVENT( int8_t res ) {<br />uint8_t sreg;<br />int8_t ecnt;<br />static uint8_t key_lock;<br /><br />// obsługa zdarzeia enkodera<br />if( enc_callback &amp;&amp; enc_flag  ) {<br /><br />sreg = SREG;<br />cli();<br />ecnt = ed&gt;&gt;2; ed &amp;= 3;<br />SREG = sreg;// sei()<br />if(ecnt&gt;1) ecnt=1;<br />if(ecnt&lt;-1) ecnt=-1;<br /><br />if(!res) res=1;<br /><br />if(ecnt) enc_callback( ecnt*-1, ecnt*res );// argumenty do funkcji my_enkoder<br /><br />enc_flag=0;<br />}[/syntax]<br /><br />tutaj główna zagadka to to co sie dzieje z ecnt= ed&gt;&gt;2; ed&amp;=3 dlaczego sie przesuwa bitowo ,a potem ed mnoży X3 ??<br /><br />przerwanie obsługujące enkoder kod:<br /><br /><br />[syntax=c]ISR( ENCODER_vect , ISR_NOBLOCK ) {<br /><br />    static int8_t last;<br />    static int8_t last_ed;<br /><br />    last = (last &lt;&lt; 2)  &amp; 0x0F;<br />    if (PHASE_A) last |=2;<br />    if (PHASE_B) last |=1;<br />    ed += pgm_read_byte( &amp;table&#91;last&#93; );<br /><br />    if( last_ed != ed ) enc_flag=1;<br /><br />    last_ed=ed;<br />}[/syntax]<br /><br />Za wszelkie wyjaśnienia 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=3917">Mac</a> — 5 lis 2017, o 23:06</p><hr />
]]></content>
</entry>
</feed>