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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2012-05-07T19:48:46+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=1072&amp;mode</id>
<entry>
<author><name><![CDATA[Wrangler]]></name></author>
<updated>2012-05-07T19:48:46+01:00</updated>
<published>2012-05-07T19:48:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1072&amp;p=6279#p6279</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1072&amp;p=6279#p6279"/>
<title type="html"><![CDATA[Re: _delay_ms / _delay_us in/de-krementacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1072&amp;p=6279#p6279"><![CDATA[
No własnie o to też zapytałem w pierwszym poście. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />OK czyli jasna sprawa. Dzięki Mirek. <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=223">Wrangler</a> — 7 maja 2012, o 19:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-05-07T19:44:53+01:00</updated>
<published>2012-05-07T19:44:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1072&amp;p=6278#p6278</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1072&amp;p=6278#p6278"/>
<title type="html"><![CDATA[Re: _delay_ms / _delay_us in/de-krementacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1072&amp;p=6278#p6278"><![CDATA[
A może warto byłoby doczytać jaki jest GAP ? Czyli czas pomiędzy ramkami nadawanymi w standardzie RC5 dla danego pilota ???<br /><br />Ale z drugiej strony rozumiem, że tego jeszcze możesz nie wiedzieć i sprawia ci to problem - na szczęście po przeczytaniu drugiej książki - wszystko stanie się jasne.<br /><br />Teraz tylko podpowiem że GAP może wynosić nawet kilkadziesiąt ms - więc czy to dziwne że trwa długo zwiększanie o 1 ? <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> — 7 maja 2012, o 19:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Wrangler]]></name></author>
<updated>2012-05-07T19:16:16+01:00</updated>
<published>2012-05-07T19:16:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1072&amp;p=6272#p6272</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1072&amp;p=6272#p6272"/>
<title type="html"><![CDATA[_delay_ms / _delay_us in/de-krementacja]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1072&amp;p=6272#p6272"><![CDATA[
[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;IR_DECODE/ir_decode.h&quot;<br /><br /><br />int main(void) {<br /><br />DDRD |= (1&lt;&lt;PD7);<br /> //anoda (katoda przez rezystor do masy)<br /><br />TCCR2 |= (1&lt;&lt;WGM20)|(WGM21);<br />TCCR2 |= (1&lt;&lt;COM21);<br />TCCR2 |= (CS20);<br />OCR2 = 0;<br /><br /><br /><br />ir_init();/* inicjalizacja dekodowania IR */<br /><br />sei();/*globalne przerwania */<br /><br /><br />while(1) {<br /><br />if(Ir_key_press_flag)<br />{/* jeśli odebrano prawidłowe kody z pilota */<br /><br /><br />/* jeśli wciśnięty przycisk 1 - załącz*/<br />if( !address &amp;&amp; 1==command )<br />{OCR2=255;<br />PORTD |= (1&lt;&lt;PD7);<br />}<br />/* jeśli wciśnięty przycisk 2 - wyłącz */<br />if( !address &amp;&amp; 2==command )<br />{<br />OCR2=0;<br />PORTD &amp;= ~(1&lt;&lt;PD7);<br />}<br />/* jeśli wciśnięty przycisk 3 - rozjasnij */<br />if( !address &amp;&amp; 3==command &amp;&amp; OCR2&lt;255 )<br />{<br />OCR2=OCR2+5;<br />}<br />                        /* jeśli wciśnięty przycisk 4 - sciemnij */<br />if( !address &amp;&amp; 4==command &amp;&amp; OCR2&gt;0 )<br />{<br />OCR2=OCR2-5;<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 />}<br />[/syntax]<br />Zacząłem jak widać kombinować ze zwiększaniem/zmniejszaniem rejestru OCR2. <br />A to dlatego, że zwykłe OCR2++/OCR2-- trwało tak długo zanim dojechało do min/max, że można by zasnąć.. <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><br />Pytanie dlaczego tak długo to trwa? Czy jest to związane z tym, że każda następna ramka z RC5 nadlatuje co ok 100ms? <br />Można to jakoś przyspieszyć? Do sterowania silników używałem opóźnienia _delay_ms(10) i było całkiem nice, no ale to nie był pilot tylko zwykłe switche. Tutaj zmieniałem na nawet _delay_us(1) i nic szczególnego -&gt; zamułka.. <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=223">Wrangler</a> — 7 maja 2012, o 19:16</p><hr />
]]></content>
</entry>
</feed>