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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-03-31T23:25:07+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=18035&amp;mode</id>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2017-03-31T23:25:07+01:00</updated>
<published>2017-03-31T23:25:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18035&amp;p=186110#p186110</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18035&amp;p=186110#p186110"/>
<title type="html"><![CDATA[Re: Sterowanie serwomechanizmem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18035&amp;p=186110#p186110"><![CDATA[
Witam<br /><div class="quotetitle">marshall94 napisał(a):</div><div class="quotecontent"><br />Czy tak napisany kod powinien działać ...  serwie Hitec HS-325HB?<br /></div><br />Częstotliwość &quot;nośna&quot; jest OK, jednakże niektóre serwa różnią się nieznacznie wymaganymi okresami ( tu OCR1A ) przy skrajnych położeniach.<br />Co prawda literatura mówi o wartościach od 1 do  2ms lecz życie czasami to weryfikuje.<br />Ja gdy szukałem krańcowych wartości odczytywałem na LCD'ku  wartość OCR1x ( zmieniałem ją programowo mierząc napięcie na ADC ) i obserwowałem kiedy przestaje kręcić mimo zmiany OCRx'a.<br />Ja zadałem inny tryb PWM'a, choć to bez różnicy:<br />[syntax=c]// timer serwa - tryb fast PWM//<br />    TCCR1A = (1&lt;&lt;WGM11)|(1&lt;&lt;COM1A1);<br />    TCCR1B = (1&lt;&lt;WGM13)|(1&lt;&lt;WGM12) | (1&lt;&lt;CS11); // preskaler 8<br />    ICR1  = 2499;  //freq = 50Hz - 20ms dla 1MHz wew<br />    OCR1A =  SERWO_STOP;  // 125 - 1ms[/syntax]<br />Dla Twojego 16MHz ICR1 * 16.<br /><br />Pozdr.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 31 mar 2017, o 23:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[marshall94]]></name></author>
<updated>2017-03-31T13:06:52+01:00</updated>
<published>2017-03-31T13:06:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18035&amp;p=186065#p186065</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18035&amp;p=186065#p186065"/>
<title type="html"><![CDATA[Re: Sterowanie serwomechanizmem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18035&amp;p=186065#p186065"><![CDATA[
Czy tak napisany kod powinien działać przy zewnętrznym taktowaniu 16MHz oraz serwie Hitec HS-325HB?<br /><br />[syntax=c]#include&lt;avr/io.h&gt;<br />#include&lt;util/delay.h&gt;<br /><br />int main(void)<br />{<br />DDRB|=(1&lt;&lt;PB1);//Kierunek pinu PB1 - WYJSCIE<br />TCCR1A |= (1&lt;&lt;COM1A1);//Ustawienie wyjscia OC1 w stan niski podczas porownania TCNT1 z OCR1<br />TCCR1B |= (1&lt;&lt;WGM13); //Ustawienie trybu 8 - PWM, Phase and Frequency Corrected<br />TCCR1B |= (1&lt;&lt;CS11); //Uruchomienie timera, preskaler = 8<br />ICR1 = 20000; // ICRx=FCLK/2*N*freq, N=8, freq=50Hz, FCLK = 16MHz<br /><br />while (1)<br />   {<br />   for (OCR1A = 900;OCR1A&lt;2100;OCR1A++)<br />   _delay_ms(1);<br />    for (OCR1A = 2100;OCR1A&gt;900;OCR1A--)<br />   _delay_ms(1);<br />  }<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16824">marshall94</a> — 31 mar 2017, o 13:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2017-03-31T11:23:57+01:00</updated>
<published>2017-03-31T11:23:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18035&amp;p=186045#p186045</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18035&amp;p=186045#p186045"/>
<title type="html"><![CDATA[Re: Sterowanie serwomechanizmem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18035&amp;p=186045#p186045"><![CDATA[
<div class="quotetitle">marshall94 napisał(a):</div><div class="quotecontent"><br />Jako, że jestem początkujący i sam nie potrafiłem napisać odpowiedniego kodu...<br /></div><br />Jeśli temat mikrokontrolerów Cię interesuje to nie trać czasu tylko zaopatrz się w bluebooka (to ten co na forum ukrywa się pod pseudonimem &quot;BB&quot;) i gwarantuję, że w ciągu max kilku dni sam napiszesz taki program <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> — 31 mar 2017, o 11:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2017-03-31T11:13:30+01:00</updated>
<published>2017-03-31T11:13:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18035&amp;p=186041#p186041</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18035&amp;p=186041#p186041"/>
<title type="html"><![CDATA[Re: Sterowanie serwomechanizmem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18035&amp;p=186041#p186041"><![CDATA[
I koniecznie popraw jeszcze sposób wstawiania kodu programu.<br />Informacje tutaj <a href="http://forum.atnel.pl/topic7402.html"  class="postlink">http://forum.atnel.pl/topic7402.html</a><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br /><div class="quotetitle">marshall94 napisał(a):</div><div class="quotecontent"><br />[syntax=c]#define MCU_FREQ 1000000UL[/syntax]<br /></div><br />Tego NIGDY nie wpisujemy w kodzie. Od tego są właściwości projektu<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 31 mar 2017, o 11:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[OskarQ1]]></name></author>
<updated>2017-03-31T11:10:26+01:00</updated>
<published>2017-03-31T11:10:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18035&amp;p=186037#p186037</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18035&amp;p=186037#p186037"/>
<title type="html"><![CDATA[Re: Sterowanie serwomechanizmem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18035&amp;p=186037#p186037"><![CDATA[
Hej w dokumentacji ATmega8 masz opisane Rejestry przy danym timerze w tym przypadku Timer1 i ich właściwości warto zajrzeć <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />A tak to rejest ICR1 (Input Compare ) jest aktualizowany wartością licznika 1 (TCNT1) za każdym wystąpieniem zdarzenia na pinie ICP1 <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=13373">OskarQ1</a> — 31 mar 2017, o 11:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[marshall94]]></name></author>
<updated>2017-03-31T11:26:02+01:00</updated>
<published>2017-03-31T10:08:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18035&amp;p=186032#p186032</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18035&amp;p=186032#p186032"/>
<title type="html"><![CDATA[Sterowanie serwomechanizmem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18035&amp;p=186032#p186032"><![CDATA[
Witam, mam do wykonania układ w którym za pomocą atmega8 muszę sterować serwomechanizmem. Jako, że jestem początkujący i sam nie potrafiłem napisać odpowiedniego kodu posłużyłem się znalezionym w internecie. Po przetestowaniu działa, ale chciałem prosić o wyjaśnienie jednej rzeczy. Komentarze w języku polskim są napisane przeze mnie i to (wydaje mi się), że rozumiem. Nie rozumiem natomiast linii w której w komentarzu są napisane znaki zapytania. Nie wiem co jest jest za rejestr i dlaczego przy tak ustawionej wartości częstotliwość wynosi 50Hz? Jak zmienić tą wartość, żeby uzyskać częstotliwość 50Hz (dla serwa) przy zewnętrznym kwarcu 16Mhz?<br /><br />[syntax=c]#include&lt;avr/io.h&gt;<br />#include&lt;util/delay.h&gt;<br />#define MCU_FREQ 1000000UL<br />int main(void)<br />{<br />DDRB|=(1&lt;&lt;PB1);//Kierunek pinu PB1 - WYJSCIE<br />TCCR1A = 0x80;//Ustawienie wyjscia OC1 w stan niski podczas porownania TCNT1 z OCR1<br />TCCR1B |= (1&lt;&lt;WGM13); //Ustawienie trybu 8 - PWM, Phase and Frequency Corrected<br />TCCR1B |= (1&lt;&lt;CS10); //Uruchomienie timera, preskaler = 0<br />ICR1 = 10000; // ??????????<br />OCR1A = 300;//Wartosc poczatkowa rejestru<br /><br /><br />while (1)<br />   {<br />//Note: After trial and error, for full range, actual<br />// servo values are lower than normally used.<br />   for (OCR1A = 300;OCR1A&lt;=1500;OCR1A++)<br />   {_delay_ms(1);}<br />    for (OCR1A = 1501;OCR1A&gt;=301;OCR1A--)<br />   {_delay_ms(1);}<br />   }<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16824">marshall94</a> — 31 mar 2017, o 10:08</p><hr />
]]></content>
</entry>
</feed>