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

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

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=9585&amp;mode</id>
<entry>
<author><name><![CDATA[spaniel]]></name></author>
<updated>2014-12-11T20:51:00+01:00</updated>
<published>2014-12-11T20:51:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9585&amp;p=108275#p108275</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9585&amp;p=108275#p108275"/>
<title type="html"><![CDATA[Re: PWM nie działa. Co jest źle?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9585&amp;p=108275#p108275"><![CDATA[
Próbowałem icaczej ustawić preskaler, ale nie wyszło. Częstotliwość PWM-a dalej była za mała.<br /><br /><div class="quotetitle">Krauser napisał(a):</div><div class="quotecontent"><br />F_CPU/preskaler/256<br /></div>Z tego wynika że częstotliwość taktowania też ma wpływ na częstotliwość PWM-a. Podłączyłem sobie kwarc 16MHz do procka, przestawiłem taktowanie na kwarc i teraz wszystko działa <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> <br /><br />Kod też trochę zmieniłem i teraz mam fajny sterownik RGB <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br /><br />int main( void ) {<br /><br />DDRB |= (1&lt;&lt;PB3);<br />DDRB |= (1&lt;&lt;PB2);<br />DDRB |= (1&lt;&lt;PB1);<br /><br />/*************Ustawienia TIMER2 jako licznik - kanał R ***********/<br />TCCR2 |= (1&lt;&lt;WGM21) | (1&lt;&lt;WGM20);<br />TCCR2 |= (1&lt;&lt;COM21) | (1&lt;&lt;COM20);<br />TCCR2 |= (1&lt;&lt;CS20) | (1&lt;&lt;CS21);<br /><br />/*************Ustawienia TIMER1 jako licznik - kanał G i B ***********/<br />    TCCR1A |= (1 &lt;&lt; WGM10);  // tryb FastPWM 8 bit<br />    TCCR1B |= (1 &lt;&lt; WGM12);  // tryb FastPWM 8 bit<br />    TCCR1A |= (1 &lt;&lt; COM1A0 | 1 &lt;&lt; COM1A1);<br />    TCCR1A |= (1 &lt;&lt; COM1B0 | 1 &lt;&lt; COM1B1);<br />    TCCR1B |= (1 &lt;&lt; CS10 | 1 &lt;&lt; CS12);  //preskaler 1024<br /><br /><br />uint8_t r = 0;<br />uint8_t g = 0;<br />uint8_t b = 0;<br /><br />r = 0;<br />g = 0;<br />b = 0;<br /><br />//zawiecenie LED R<br />OCR2 = 226;<br /><br />while(1) {<br /><br />//funkcja rozjaniajaca LED B<br />for(b=0;b&lt;255;){<br />OCR1B = b;<br />b=b+1;<br />_delay_ms(50);<br />}<br /><br />//funkcja sciemnaijaca LED R<br />for(r=255;r&gt;1;){<br />OCR2= r;<br />r=r-1;<br />_delay_ms(50);<br />}<br /><br />//funkcja rozjaniajaca LED G<br />for(g=0;g&lt;255;){<br />OCR1A = g;<br />g=g+1;<br />_delay_ms(50);<br />}<br /><br />//funkcja sciemnaijaca LED B<br />for(b=255;b&gt;1;){<br />OCR1B= b;<br />b=b-1;<br />_delay_ms(50);<br />}<br /><br />//funkcja rozjaniajaca LED R<br />for(r=0;r&lt;255;){<br />OCR2 = r;<br />r=r+1;<br />_delay_ms(50);<br />}<br /><br />//funkcja rozjaniajaca LED B<br />for(b=0;b&lt;255;){<br />OCR1B = b;<br />b=b+1;<br />_delay_ms(50);<br />}<br /><br />//funkcja sciemnaijaca LED B<br />for(b=255;b&gt;1;){<br />OCR1B= b;<br />b=b-1;<br />_delay_ms(50);<br />}<br /><br />//funkcja sciemnaijaca LED G<br />for(g=255;g&gt;1;){<br />OCR1A= g;<br />g=g-1;<br />_delay_ms(50);<br />}<br /><br /><br /><br /><br /><br /><br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7096">spaniel</a> — 11 gru 2014, o 20:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2014-12-10T20:56:16+01:00</updated>
<published>2014-12-10T20:56:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9585&amp;p=108117#p108117</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9585&amp;p=108117#p108117"/>
<title type="html"><![CDATA[Re: PWM nie działa. Co jest źle?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9585&amp;p=108117#p108117"><![CDATA[
<div class="quotetitle">spaniel napisał(a):</div><div class="quotecontent"><br />Coś już zaczyna działać, ale diody podłączone do wyjść timera1 przy ściemnianiu i rozjaśnianiu mrugają. Co jest tego powodem?<br /></div><br />Za niska częstotliwość = za duży preskaler. Sprawdź ustawienia bitów CSxy i oblicz sobie częstotliwość ze wzoru:<br />F_CPU/preskaler/256<br />- 256 wynika z tego, że PWM jest 8-bitowy<br />- F_CPU to częstotliwość taktowania procesora po uwzględnieniu fusebitów<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 10 gru 2014, o 20:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[spaniel]]></name></author>
<updated>2014-12-11T17:06:04+01:00</updated>
<published>2014-12-09T20:21:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9585&amp;p=107977#p107977</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9585&amp;p=107977#p107977"/>
<title type="html"><![CDATA[Re: PWM nie działa. Co jest źle?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9585&amp;p=107977#p107977"><![CDATA[
<div class="quotetitle">Marcin_G napisał(a):</div><div class="quotecontent"><br />Chcąc ustawić Timer1 w taki sam tryb jak ustawiłeś Timer2, to powinno to chyba wyglądać tak:<br /></div><br />Zrobiłem jak napisałeś. Kod wygląda teraz tak:<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br /><br />int main( void ) {<br /><br />DDRB |= (1&lt;&lt;PB3);<br />DDRB |= (1&lt;&lt;PB2);<br />DDRB |= (1&lt;&lt;PB1);<br /><br />/*************Ustawienia TIMER2 jako licznik - kanał R ***********/<br />TCCR2 |= (1&lt;&lt;WGM21) | (1&lt;&lt;WGM20);<br />TCCR2 |= (1&lt;&lt;COM21) | (1&lt;&lt;COM20);<br />TCCR2 |= (1&lt;&lt;CS20) | (1&lt;&lt;CS21);<br /><br />/*************Ustawienia TIMER1 jako licznik - kanał G i B ***********/<br /> TCCR1A |= (1 &lt;&lt; WGM10);  // tryb FastPWM 8 bit<br /> TCCR1B |= (1 &lt;&lt; WGM12);  // tryb FastPWM 8 bit<br /> TCCR1A |= (1 &lt;&lt; COM1A0 | 1 &lt;&lt; COM1A1);<br /> TCCR1A |= (1 &lt;&lt; COM1B0 | 1 &lt;&lt; COM1B1);<br /> TCCR1B |= (1 &lt;&lt; CS10 | 1 &lt;&lt; CS12);  //preskaler 1024<br /><br /><br />uint8_t r = 0;<br />uint8_t g = 0;<br />uint8_t b = 0;<br /><br />while(1) {<br /><br />//funkcja rozjaniajaca LED R<br />for(r=0;r&lt;255;){<br />OCR2 = r;<br />r=r+1;<br />_delay_ms(5);<br />}<br />//funkcja sciemnaijaca LED R<br />for(r=255;r&gt;1;){<br />OCR2= r;<br />r=r-1;<br />_delay_ms(5);<br />}<br /><br /><br />//funkcja rozjaniajaca LED G<br />for(g=0;g&lt;255;){<br />OCR1A = g;<br />g=g+1;<br />_delay_ms(5);<br />}<br />//funkcja sciemnaijaca LED G<br />for(g=255;g&gt;1;){<br />OCR1A= g;<br />g=g-1;<br />_delay_ms(5);<br />}<br /><br /><br />//funkcja rozjaniajaca LED B<br />for(b=0;b&lt;255;){<br />OCR1B = b;<br />b=b+1;<br />_delay_ms(5);<br />}<br />//funkcja sciemnaijaca LED B<br />for(b=255;b&gt;1;){<br />OCR1B= b;<br />b=b-1;<br />_delay_ms(5);<br />}<br /><br />}<br /><br /><br /><br />}[/syntax]<br />Coś już zaczyna działać, ale diody podłączone do wyjść timera1 przy ściemnianiu i rozjaśnianiu mrugają. Co jest tego powodem?<br /><br /><div class="quotetitle">krauser napisał(a):</div><div class="quotecontent"><br />Jeśli karta po angielsku jest za ciężka ze względu na słownictwo techniczne to zajrzyj do polskiej wersji<br /></div>Dzięki za polską wersję. Z angielską miałem problem <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=7096">spaniel</a> — 9 gru 2014, o 20:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2014-12-08T19:13:31+01:00</updated>
<published>2014-12-08T19:13:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9585&amp;p=107840#p107840</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9585&amp;p=107840#p107840"/>
<title type="html"><![CDATA[Re: PWM nie działa. Co jest źle?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9585&amp;p=107840#p107840"><![CDATA[
Poprawione  <img src="https://forum.atnel.pl/images/smilies/icon_rolleyes.gif" alt=":roll:" title="Udaje, że to nie on" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 8 gru 2014, o 19:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Marcin_G]]></name></author>
<updated>2014-12-08T10:27:34+01:00</updated>
<published>2014-12-08T10:27:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9585&amp;p=107775#p107775</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9585&amp;p=107775#p107775"/>
<title type="html"><![CDATA[Re: PWM nie działa. Co jest źle?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9585&amp;p=107775#p107775"><![CDATA[
Yyy, chyba drobny błąd przy cytowaniu się wkradł <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=758">Marcin_G</a> — 8 gru 2014, o 10:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2014-12-08T19:12:53+01:00</updated>
<published>2014-12-08T00:21:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9585&amp;p=107762#p107762</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9585&amp;p=107762#p107762"/>
<title type="html"><![CDATA[Re: PWM nie działa. Co jest źle?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9585&amp;p=107762#p107762"><![CDATA[
<div class="quotetitle">spaniel napisał(a):</div><div class="quotecontent"><br />A Timer1A i Timer1B kompletnie nie wiem jak ustawić żeby działały. Przeglądałem kartę katalogową procka, ale nic nie udało mi się zrobić.<br /></div><br />Timer1  to jeden timer co ma 2 kanały PWM. Jeśli karta po angielsku jest za ciężka ze względu na słownictwo techniczne to zajrzyj do polskiej wersji:<br /><!-- m --><a class="postlink" href="http://www.pg.gda.pl/~zbczaja/pdf/atmega16_pl.pdf" >http://www.pg.gda.pl/~zbczaja/pdf/atmega16_pl.pdf</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 8 gru 2014, o 00:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Marcin_G]]></name></author>
<updated>2014-12-07T19:26:14+01:00</updated>
<published>2014-12-07T19:26:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9585&amp;p=107744#p107744</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9585&amp;p=107744#p107744"/>
<title type="html"><![CDATA[Re: PWM nie działa. Co jest źle?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9585&amp;p=107744#p107744"><![CDATA[
Chcąc ustawić Timer1 w taki sam tryb jak ustawiłeś Timer2, to powinno to chyba wyglądać tak:<br /><br />[syntax=c]TCCR1A |= (1 &lt;&lt; WGM10);  // tryb FastPWM 8 bit<br />TCCR1B |= (1 &lt;&lt; WGM12);  // tryb FastPWM 8 bit<br />TCCR1A |= (1 &lt;&lt; COM1A0 | 1 &lt;&lt; COM1A1);<br />TCCR1A |= (1 &lt;&lt; COM1B0 | 1 &lt;&lt; COM1B1);<br />TCCR1B |= (1 &lt;&lt; CS10 | 1 &lt;&lt; CS12);  preskaler 1024[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=758">Marcin_G</a> — 7 gru 2014, o 19:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[spaniel]]></name></author>
<updated>2014-12-07T18:27:02+01:00</updated>
<published>2014-12-07T18:27:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9585&amp;p=107734#p107734</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9585&amp;p=107734#p107734"/>
<title type="html"><![CDATA[Re: PWM nie działa. Co jest źle?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9585&amp;p=107734#p107734"><![CDATA[
Sam Timer2 zrobiłem tak:<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />uint8_t i = 0;<br />int main(void){<br /><br />DDRB |= (1&lt;&lt;PB3);<br /><br />/*************Ustawienia TIMER2 jako licznik - tryb PWM ***********/<br />TCCR2 |= (1&lt;&lt;WGM21) | (1&lt;&lt;WGM20); // tryb PWM dla TIMER2 (8-bit)<br />TCCR2 |= (1&lt;&lt;COM21) | (1&lt;&lt;COM20); //clear OC2 at TOP<br />TCCR2 |= (1&lt;&lt;CS20) | (1&lt;&lt;CS21);  // preskaler na 1024<br /><br />while(1){<br />//funkcja rozjaniajaca LED<br />for(i=0;i&lt;255;){<br />OCR2 = i;<br />i=i+1;<br />_delay_ms(5);<br />}<br />//funkcja sciemnaijaca LED<br />for(i=255;i&gt;1;){<br />OCR2= i;<br />i=i-1;<br />_delay_ms(5);<br />}<br /><br /><br />}<br />}[/syntax]<br />Działa bardzo dobrze. Dioda podłączona do PB3 płynnie rozświetla się i gaśnie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br />A Timer1A i Timer1B kompletnie nie wiem jak ustawić żeby działały. Przeglądałem kartę katalogową procka, ale nic nie udało mi się zrobić.<br /><br /><div class="quotetitle">Krauser napisał(a):</div><div class="quotecontent"><br />tutaj nadaje się Fast PWM, 8-bit, czyli ustawione powinny być tylko bity WGM12 i WGM10.<br /></div><br />Jak zamiast WGM21 wpisałem WGM12, a zamiast WGM20 wpisałem WGM10 to dioda cały czas nie świeciła.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7096">spaniel</a> — 7 gru 2014, o 18:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2014-12-07T16:41:26+01:00</updated>
<published>2014-12-07T16:41:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9585&amp;p=107722#p107722</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9585&amp;p=107722#p107722"/>
<title type="html"><![CDATA[Re: PWM nie działa. Co jest źle?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9585&amp;p=107722#p107722"><![CDATA[
Na początek zrób tylko na Timerze2 jeden kanał i sprawdź czy działa.<br />Masz źle skonfigurowany Timer1. TCCR1A i TCCR1B to nie są niezależne rejestry do kanału A i B. Trzeba je traktować razem. Szczegóły znajdziesz w specyfikacji. COM1A1, COM1A0, COM1B1, COM1B0 są w tym samym rejestrze. Ustawienie WGM13, WGM12, WGM11 i WGM10 coś tam skonfiguruje, ale nie to co chcesz, a tutaj nadaje się Fast PWM, 8-bit, czyli ustawione powinny być tylko bity WGM12 i WGM10.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 7 gru 2014, o 16:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[spaniel]]></name></author>
<updated>2014-12-07T16:19:24+01:00</updated>
<published>2014-12-07T16:19:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9585&amp;p=107716#p107716</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9585&amp;p=107716#p107716"/>
<title type="html"><![CDATA[PWM nie działa. Co jest źle?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9585&amp;p=107716#p107716"><![CDATA[
Cześć.<br /><br />Próbuje napisać prosty program do sterowania diodą LED RGB. Tak wygląda kod:<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br /><br />int main( void ) {<br /><br />DDRB |= (1&lt;&lt;PB3);<br />DDRB |= (1&lt;&lt;PB2);<br />DDRB |= (1&lt;&lt;PB1);<br /><br />/*************Ustawienia TIMER2 jako licznik - kanał R ***********/<br />TCCR2 |= (1&lt;&lt;WGM21) | (1&lt;&lt;WGM20);<br />TCCR2 |= (1&lt;&lt;COM21) | (1&lt;&lt;COM20);<br />TCCR2 |= (1&lt;&lt;CS20) | (1&lt;&lt;CS21);<br /><br />/*************Ustawienia TIMER1 jako licznik - kanał G ***********/<br />TCCR1A |= (1&lt;&lt;WGM11) | (1&lt;&lt;WGM10);<br />TCCR1A |= (1&lt;&lt;COM1A1) | (1&lt;&lt;COM1A0);<br />TCCR1A |= (1&lt;&lt;CS10) | (1&lt;&lt;CS11);<br /><br />/*************Ustawienia TIMER1 jako licznik - kanał B ***********/<br />TCCR1B |= (1&lt;&lt;WGM13) | (1&lt;&lt;WGM12);<br />TCCR1B |= (1&lt;&lt;COM1B1) | (1&lt;&lt;COM1B0);<br />TCCR1B |= (1&lt;&lt;CS10) | (1&lt;&lt;CS12);<br /><br />uint8_t r = 0;<br />uint8_t g = 0;<br />uint8_t b = 0;<br /><br />while(1) {<br /><br />//funkcja rozjaniajaca LED R<br />for(r=0;r&lt;255;){<br />OCR2 = r;<br />r=r+1;<br />_delay_ms(5);<br />}<br />//funkcja sciemnaijaca LED R<br />for(r=255;r&gt;1;){<br />OCR2= r;<br />r=r-1;<br />_delay_ms(5);<br />}<br /><br /><br />//funkcja rozjaniajaca LED G<br />for(g=0;g&lt;255;){<br />OCR1A = g;<br />g=g+1;<br />_delay_ms(5);<br />}<br />//funkcja sciemnaijaca LED G<br />for(g=255;g&gt;1;){<br />OCR1A= g;<br />g=g-1;<br />_delay_ms(5);<br />}<br /><br /><br />//funkcja rozjaniajaca LED B<br />for(b=0;b&lt;255;){<br />OCR1B = b;<br />b=b+1;<br />_delay_ms(5);<br />}<br />//funkcja sciemnaijaca LED B<br />for(b=255;b&gt;1;){<br />OCR1B= b;<br />b=b-1;<br />_delay_ms(5);<br />}<br /><br />}<br /><br /><br /><br />}[/syntax]<br /><br />Niestety nie chce to działać <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> <br />Procek jakiego użyłem to Atmega8. Kombinuję już ponad pół godziny i nic nie mogę z tym zrobić. PWM-a nigdy wcześniej nie programowałem i kompletnie nie wiem co tu jest źle.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7096">spaniel</a> — 7 gru 2014, o 16:19</p><hr />
]]></content>
</entry>
</feed>