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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-02-11T20:08:51+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=5941&amp;mode</id>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2014-02-11T20:08:51+01:00</updated>
<published>2014-02-11T20:08:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5941&amp;p=69970#p69970</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5941&amp;p=69970#p69970"/>
<title type="html"><![CDATA[Re: Problem z PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5941&amp;p=69970#p69970"><![CDATA[
<div class="quotetitle">filip napisał(a):</div><div class="quotecontent"><br />Nie do końca wiem jak to działa, ale działa  bardzo dziękuję za pomoc<br /></div><br />Chodzi o to, że domyślnie działania wykonywane są na zmiennej 16-bitowej, a dodatek w postaci literek &quot;UL&quot; w wyrażeniu powoduje, że obliczenia będą robione na zmiennej Unsigned Long czyli zmieści się dużo więcej niż 65535 i końcowy wynik po podzieleniu przez 1023 po przypisaniu będzie prawidłowy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1922">SylwekK</a> — 11 lut 2014, o 20:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[filip]]></name></author>
<updated>2014-02-11T14:09:54+01:00</updated>
<published>2014-02-11T14:09:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5941&amp;p=69870#p69870</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5941&amp;p=69870#p69870"/>
<title type="html"><![CDATA[Re: Problem z PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5941&amp;p=69870#p69870"><![CDATA[
<div class="quotetitle">Intre napisał(a):</div><div class="quotecontent"><br />Wiesz co nie jestem do końca pewien to co mówię ale można użyć dłuższej liczby dopisując UL. Mi to kiedyś pomogło podczas przeliczania wartości z ADC do PWM dla serwa.<br /><br />Umnie wyglądało to tak:<br /><br />[syntax=c]wynik1 = (pomiar(4));<br />OCR1A = 170 + wynik1*400UL/1023;[/syntax]<br /></div><br /><br />Nie do końca wiem jak to działa, ale działa <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> bardzo dziękuję za pomoc <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br /><div class="quotetitle">jacekk232 napisał(a):</div><div class="quotecontent"><br />Kodu nie analizowałem ale pierwsze co mi przyszło na myśl to <!-- m --><a class="postlink" href="http://www.atnel.pl/domyslna-promocja-do-typu-int.html" >http://www.atnel.pl/domyslna-promocja-do-typu-int.html</a><!-- m --><br /></div><br /><br />Tak, tak wiem o tym. Nie pisałem tego, ale próbowałem także rzutowanie najpierw na float, a dopiero później na inta, ale też bez skutku.<br /><br /><div class="quotetitle">kurnachatka napisał(a):</div><div class="quotecontent"><br />To niema prawdopodobnie znaczenia z twoim problemem ale zastanawia mnie poco jest średnik za klamrą<br />[syntax=c]};[/syntax]<br /></div><br /><br />Musiał się zaplątać <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=1548">filip</a> — 11 lut 2014, o 14:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kurnachatka]]></name></author>
<updated>2014-02-11T13:18:18+01:00</updated>
<published>2014-02-11T13:18:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5941&amp;p=69855#p69855</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5941&amp;p=69855#p69855"/>
<title type="html"><![CDATA[Re: Problem z PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5941&amp;p=69855#p69855"><![CDATA[
To niema prawdopodobnie znaczenia z twoim problemem ale zastanawia mnie poco jest średnik za klamrą<br />[syntax=c]};[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=930">kurnachatka</a> — 11 lut 2014, o 13:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2014-02-11T13:14:30+01:00</updated>
<published>2014-02-11T13:14:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5941&amp;p=69854#p69854</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5941&amp;p=69854#p69854"/>
<title type="html"><![CDATA[Re: Problem z PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5941&amp;p=69854#p69854"><![CDATA[
Kodu nie analizowałem ale pierwsze co mi przyszło na myśl to <!-- m --><a class="postlink" href="http://www.atnel.pl/domyslna-promocja-do-typu-int.html" >http://www.atnel.pl/domyslna-promocja-do-typu-int.html</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 11 lut 2014, o 13:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Intre]]></name></author>
<updated>2014-02-11T13:15:07+01:00</updated>
<published>2014-02-11T13:11:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5941&amp;p=69853#p69853</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5941&amp;p=69853#p69853"/>
<title type="html"><![CDATA[Re: Problem z PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5941&amp;p=69853#p69853"><![CDATA[
Wiesz co nie jestem do końca pewien to co mówię ale można użyć dłuższej liczby dopisując UL. Mi to kiedyś pomogło podczas przeliczania wartości z ADC do PWM dla serwa.<br /><br />Umnie wyglądało to tak:<br /><br />[syntax=c]wynik1 = (pomiar(4));<br />OCR1A = 170 + wynik1*400UL/1023;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1356">Intre</a> — 11 lut 2014, o 13:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[filip]]></name></author>
<updated>2014-02-11T12:10:31+01:00</updated>
<published>2014-02-11T12:10:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5941&amp;p=69848#p69848</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5941&amp;p=69848#p69848"/>
<title type="html"><![CDATA[Problem z PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5941&amp;p=69848#p69848"><![CDATA[
Witam,<br />Mam problem przy używaniu PWM i ADC. Za każdym razem przy obliczaniu wartości do PWM rejestry przepełniają się i nie mogę zrobić całości obrotu serwa.  Gdy sprawdzałem wartości 100*ADC/1023 na wyświetlaczu to zawsze dochodziło do wartości 63. Nie wiem co z tym zrobić ponieważ nawet przy ustawieniu typu na int16_t i int32_t wszystko się powtarza.Nie wklejam biblioteki ADC ponieważ pochodzi z książki pana Mirka.<br />main.c:<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;ADC\ADC.h&quot;<br />#include &quot;pwm\pwmserwo.h&quot;<br />#include &lt;avr/interrupt.h&gt;<br /><br />volatile int32_t pwm&#91;5&#93;;<br />int main()<br />{<br />// *** zezwolenie na globalne przerwania<br />sei();<br />// *** inicjalizacja<br />//lcd_init();<br />ADC_Init();<br />Serwos_Init();<br />Timer2_Init();<br /><br />while(1){<br />pwm&#91;1&#93;=(70+((156*pomiar(kanal_x))/1023));<br />}<br />}<br />// *** przerwanie od timera2 co 0,01ms<br />ISR( TIMER2_COMP_vect ){<br />static uint16_t counter_pwm=0;<br />counter_pwm++;//zwiekszenie wartosci licznika PWM<br />if(pwm&#91;1&#93;==counter_pwm) ClrSerwo(SERWO_1_PORT, SERWO_1_PIN);//ustaw 0 na porcie<br />if(pwm&#91;2&#93;==counter_pwm) ClrSerwo(SERWO_2_PORT, SERWO_2_PIN);<br />if(pwm&#91;3&#93;==counter_pwm) ClrSerwo(SERWO_3_PORT, SERWO_3_PIN);<br />if(pwm&#91;4&#93;==counter_pwm) ClrSerwo(SERWO_4_PORT, SERWO_4_PIN);<br />if(counter_pwm==2000){//jesli licznik osiagnal 2000 - 20ms<br />counter_pwm=0;<br />SetSerwo(SERWO_1_PORT, SERWO_1_PIN);// ustaw 1 na porcie<br />SetSerwo(SERWO_2_PORT, SERWO_2_PIN);<br />SetSerwo(SERWO_3_PORT, SERWO_3_PIN);<br />SetSerwo(SERWO_4_PORT, SERWO_4_PIN);<br />};<br />}[/syntax]<br /><br />pwmserwo.c:<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &quot;pwmserwo.h&quot;<br /><br />void Timer2_Init(){<br />TCCR2 |= (1&lt;&lt;WGM21);// tryb  CTC<br />TCCR2 |= (1&lt;&lt;CS20);// preskaler = 1<br />OCR2 = 159;// dodatkowy podział częsttotliwości przez 200<br />TIMSK |= (1&lt;&lt;OCIE2);// zezwolenie na przerwanie CompareMatch<br />};<br /><br />void Serwos_Init(){<br />DDR(SERWO_1_PORT) |= (1&lt;&lt;SERWO_1_PIN);<br />DDR(SERWO_2_PORT) |= (1&lt;&lt;SERWO_2_PIN);<br />DDR(SERWO_3_PORT) |= (1&lt;&lt;SERWO_3_PIN);<br />DDR(SERWO_4_PORT) |= (1&lt;&lt;SERWO_4_PIN);<br />}<br /><br />};[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1548">filip</a> — 11 lut 2014, o 12:10</p><hr />
]]></content>
</entry>
</feed>