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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-05-22T14:37:00+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=15427&amp;mode</id>
<entry>
<author><name><![CDATA[dodek95]]></name></author>
<updated>2016-05-22T14:37:00+01:00</updated>
<published>2016-05-22T14:37:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15427&amp;p=161008#p161008</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15427&amp;p=161008#p161008"/>
<title type="html"><![CDATA[Re: PROGRAMOWY PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15427&amp;p=161008#p161008"><![CDATA[
W mojej konfiguracji Timera w Trybie CTC wartość maksymalną trwania sygnału wyznacza ICR1 według noty katologowej, dlatego tam wpisałem zadaną wartość, żeby otrzymać 50Hz. Gdy przełączę Timer na Fast PWM w tej samej konfiguracji ICR1 i podłączę serwo do portu wyjściowego dla tego PWM wszystko działa bez zarzutu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8853">dodek95</a> — 22 maja 2016, o 14:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[eMCe2]]></name></author>
<updated>2016-05-21T14:50:07+01:00</updated>
<published>2016-05-21T14:50:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15427&amp;p=160974#p160974</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15427&amp;p=160974#p160974"/>
<title type="html"><![CDATA[Re: PROGRAMOWY PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15427&amp;p=160974#p160974"><![CDATA[
W tym twoim przerwaniu brakuje jeszcze inkrementacji zmiennej cnt no chyba ze tu ci się nie wkleila...<br /><br />Co do nie dzialania serw to wydaje mi sie ze twoja f nie wynosi 50Hz. Popatrz do jakiego rejestru wpisujesz te 20000? ICR1?<br /><br /><br />P.S.<br />Proponuję do testów nabyć takie tanie cudo... na serio duuuzo to pomaga <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><!-- m --><a class="postlink" href="http://allegro.pl/analizator-stanow-logicznych-saleae-i6198170979.html" >http://allegro.pl/analizator-stanow-log ... 70979.html</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1363">eMCe2</a> — 21 maja 2016, o 14:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[dodek95]]></name></author>
<updated>2016-05-21T12:20:44+01:00</updated>
<published>2016-05-21T12:20:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15427&amp;p=160967#p160967</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15427&amp;p=160967#p160967"/>
<title type="html"><![CDATA[Re: PROGRAMOWY PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15427&amp;p=160967#p160967"><![CDATA[
I teraz wszystko pięknie działa. Wielkie dzięki <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 36 minutach ]</span></strong><br /><br />Mam jeszcze jedno pytanie, gdy do portów PD0-2 podłącze serwomechanizmy i wyślę wartości np pwm1=900, pwm2=1500 i pwm3=2100 to wszystkie trzy serwa stoją w miejscu i ani drgną, ktoś wie dlaczego?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8853">dodek95</a> — 21 maja 2016, o 12:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[atmel]]></name></author>
<updated>2016-05-21T12:11:37+01:00</updated>
<published>2016-05-21T12:11:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15427&amp;p=160966#p160966</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15427&amp;p=160966#p160966"/>
<title type="html"><![CDATA[Re: PROGRAMOWY PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15427&amp;p=160966#p160966"><![CDATA[
Nawias klamrowy z linii 30 powinien trafić do linii 18.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1183">atmel</a> — 21 maja 2016, o 12:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2016-05-21T12:11:15+01:00</updated>
<published>2016-05-21T12:11:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15427&amp;p=160965#p160965</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15427&amp;p=160965#p160965"/>
<title type="html"><![CDATA[Re: PROGRAMOWY PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15427&amp;p=160965#p160965"><![CDATA[
Zobacz, w którym miejscu umieściłeś funkcję obsługi przerwania. Wewnątrz funkcji main.<br /><br />Powinieneś mieć tak<br />[syntax=c]int main (void)<br />{<br />TCCR1A|=(1&lt;&lt;COM1A1)|(1&lt;&lt;COM1B1);//PWM w tryb CTC, preskaler 1, Clear at TOP<br />TCCR1B|=(1&lt;&lt;WGM12)|(1&lt;&lt;WGM13)|(1&lt;&lt;CS10);<br />ICR1=20000;//dzielnik częstotliwości 1MHz/20ms=50Hz<br /> <br />DDRD|=(1&lt;&lt;PD0)|(1&lt;&lt;PD1)|(1&lt;&lt;PD2);//ustawienie portów jak wyjścia<br />PORTD|=(1&lt;&lt;PD0)|(1&lt;&lt;PD1)|(1&lt;&lt;PD2);//wygaszenie diod na portach<br /> <br />TIMSK|=(1&lt;&lt;OCIE1A); //zezwolenie na przerwanie, Compare Match<br />sei();// globalne odblokowanie przerwań<br /> <br />    while(1)<br />    {<br />    }<br />}<br /><br />ISR ( TIMER1_COMPA_vect )<br />{<br /> <br />        static uint16_t cnt;<br />        //bezpośrednie sterowanie pwm<br />        if(cnt&gt;=pwm1) PORTD |= (1&lt;&lt;PD0); else PORTD &amp;= ~(1&lt;&lt;PD0);<br />        if(cnt&gt;=pwm1) PORTD |= (1&lt;&lt;PD1); else PORTD &amp;= ~(1&lt;&lt;PD1);<br />        if(cnt&gt;=pwm1) PORTD |= (1&lt;&lt;PD2); else PORTD &amp;= ~(1&lt;&lt;PD2);<br />       <br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 21 maja 2016, o 12:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[dodek95]]></name></author>
<updated>2016-05-21T11:49:51+01:00</updated>
<published>2016-05-21T11:49:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15427&amp;p=160964#p160964</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15427&amp;p=160964#p160964"/>
<title type="html"><![CDATA[PROGRAMOWY PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15427&amp;p=160964#p160964"><![CDATA[
Witam. Chciałbym napisać kod do programowej obsługi PWM. Gdy wpisuję kod na podstawie tego, który był zamieszczony w książce cały czas wyskakuję mi błąd, którego zrzut ekranu zamieszczam poniżej. Używam Atmegi32 Proszę o pomoc.<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br />volatile uint16_t pwm1,pwm2,pwm3; //zmienie o rozdzielczości 16-bitowej<br /><br />int main (void)<br />{<br />TCCR1A|=(1&lt;&lt;COM1A1)|(1&lt;&lt;COM1B1);//PWM w tryb CTC, preskaler 1, Clear at TOP<br />TCCR1B|=(1&lt;&lt;WGM12)|(1&lt;&lt;WGM13)|(1&lt;&lt;CS10);<br />ICR1=20000;//dzielnik częstotliwości 1MHz/20ms=50Hz<br /><br />DDRD|=(1&lt;&lt;PD0)|(1&lt;&lt;PD1)|(1&lt;&lt;PD2);//ustawienie portów jak wyjścia<br />PORTD|=(1&lt;&lt;PD0)|(1&lt;&lt;PD1)|(1&lt;&lt;PD2);//wygaszenie diod na portach<br /><br />TIMSK|=(1&lt;&lt;OCIE1A); //zezwolenie na przerwanie, Compare Match<br />sei();// globalne odblokowanie przerwań<br /><br /><br />ISR ( TIMER1_COMPA_vect )<br />{<br /><br />static uint16_t cnt;<br />//bezpośrednie sterowanie pwm<br />if(cnt&gt;=pwm1) PORTD |= (1&lt;&lt;PD0); else PORTD &amp;= ~(1&lt;&lt;PD0);<br />if(cnt&gt;=pwm1) PORTD |= (1&lt;&lt;PD1); else PORTD &amp;= ~(1&lt;&lt;PD1);<br />if(cnt&gt;=pwm1) PORTD |= (1&lt;&lt;PD2); else PORTD &amp;= ~(1&lt;&lt;PD2);<br /><br />}<br />}[/syntax]<br /><br /><a href="https://obrazkiforum.atnel.pl/8853/35026bc3bbf939eef7749e5edaf9476c.JPG"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/8853/35026bc3bbf939eef7749e5edaf9476c.JPG" alt="Obrazek" /></a><br /><br />W błędzie chodzi oczywiście o tą linijkę: [syntax=c]ISR ( TIMER1_COMPA_vect )[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8853">dodek95</a> — 21 maja 2016, o 11:49</p><hr />
]]></content>
</entry>
</feed>