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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-01-28T22:49:57+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=30&amp;t=17471&amp;mode</id>
<entry>
<author><name><![CDATA[michal1210]]></name></author>
<updated>2017-01-28T22:49:57+01:00</updated>
<published>2017-01-28T22:49:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17471&amp;p=181157#p181157</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17471&amp;p=181157#p181157"/>
<title type="html"><![CDATA[Re: Fast PWM - skrajne wartości OCR0]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17471&amp;p=181157#p181157"><![CDATA[
Super!<br /><br />Obie metody działają i dają efekt jaki oczekiwałem <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Bardzo dziękuję <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Jaki sposób polecasz do np. sterowania MOSFETA?<br />Czy lepiej wybrać PWM'a w trybie Phase Correct i nie bawić się w tą funkcję wyłączającą, czy może zostać przy FAST PWM i programowo to ograniczać?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=998">michal1210</a> — 28 sty 2017, o 22:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[anshar]]></name></author>
<updated>2017-01-28T03:25:19+01:00</updated>
<published>2017-01-28T03:25:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17471&amp;p=181088#p181088</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17471&amp;p=181088#p181088"/>
<title type="html"><![CDATA[Re: Fast PWM - skrajne wartości OCR0]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17471&amp;p=181088#p181088"><![CDATA[
<div class="quotetitle">michal1210 napisał(a):</div><div class="quotecontent"><br />Pytanie czy da się coś z tym zrobić aby się tego pozbyć?<br /></div><br />1. Dla Fast PWM dodać w pętli głównej taki oto warunek:<br />[syntax=c]if(!OCR0) TCCR0 &amp;= ~(1&lt;&lt;COM01);<br />else TCCR0 |= (1&lt;&lt;COM01);[/syntax]<br />Fast PWM:<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 />void pwm_on_off(void);<br /><br />int main(void) {<br /><br />//***** SPRZĘTOWY PWM - 1 KANAŁ OC0 (PB3) *******<br />// ustawienie końcówki OC0 (PB3) sprzętowy PWM jako WYJŚCIE<br />DDRB |= (1&lt;&lt;PB3);<br />// ustawienia TIMER0 w Fast PWM<br />TCCR0 |= (1&lt;&lt;WGM01)|(1&lt;&lt;WGM00);         // tryb Fast PWM<br />TCCR0 |= (1&lt;&lt;COM01);                            // Clear OC0 on compare match<br />TCCR0 |= (1&lt;&lt;CS02)|(1&lt;&lt;CS00);           // preskaler = 1024<br />//TCCR0 |= (1&lt;&lt;CS00);           // preskaler = 1<br />OCR0=0;  // wygaszenie diody w kanale PWM<br /><br />while(1) {<br /><br />for(uint8_t i=0; i&lt;255; i++) {<br />OCR0 = i;<br />pwm_on_off();<br />_delay_ms(10);<br />}<br /><br />OCR0 = 255;<br />_delay_ms(1000);<br /><br />for(uint8_t i=255; i&gt;0; i--) {<br />OCR0 = i;<br />_delay_ms(10);<br />}<br /><br />OCR0 = 0;<br />pwm_on_off();<br /><br />_delay_ms(1000);<br />}<br /><br />}<br /><br />void pwm_on_off(void) {<br /><br />if(!OCR0) TCCR0 &amp;= ~(1&lt;&lt;COM01);<br />else TCCR0 |= (1&lt;&lt;COM01);<br /><br />}[/syntax]<br />2. Włączyć PWM'a w trybie Phase Correct:<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 />int main(void) {<br /><br />//***** SPRZĘTOWY PWM - 1 KANAŁ OC0 (PB3) *******<br />// ustawienie końcówki OC0 (PB3) sprzętowy PWM jako WYJŚCIE<br />DDRB |= (1&lt;&lt;PB3);<br />// ustawienia TIMER0 w tryb PWM Phase correct<br />//TCCR0 |= (1&lt;&lt;WGM01)|(1&lt;&lt;WGM00);         // tryb Fast PWM<br />TCCR0 |= (1&lt;&lt;WGM00);         // tryb PWM Phase correct<br />TCCR0 |= (1&lt;&lt;COM01);                            // Clear OC0 on compare match<br />//TCCR0 |= (1&lt;&lt;CS02)|(1&lt;&lt;CS00);           // preskaler = 1024<br />TCCR0 |= (1&lt;&lt;CS00);           // preskaler = 1<br />OCR0=0;  // wygaszenie diody w kanale PWM<br /><br />while(1) {<br /><br />for(uint8_t i=0; i&lt;255; i++) {<br />OCR0 = i;<br />_delay_ms(10);<br />}<br /><br />OCR0 = 255;<br />_delay_ms(1000);<br /><br />for(uint8_t i=255; i&gt;0; i--) {<br />OCR0 = i;<br />_delay_ms(10);<br />}<br /><br />OCR0 = 0;<br />_delay_ms(1000);<br /><br />}<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7157">anshar</a> — 28 sty 2017, o 03:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[michal1210]]></name></author>
<updated>2017-01-28T00:41:16+01:00</updated>
<published>2017-01-28T00:41:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17471&amp;p=181083#p181083</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17471&amp;p=181083#p181083"/>
<title type="html"><![CDATA[Fast PWM - skrajne wartości OCR0]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17471&amp;p=181083#p181083"><![CDATA[
Siema<br /><br />Bawię się ostatnio pwm-em oglądając przebiegi na &quot;oscyloskopie&quot; (zabawce DS0138) i zauważyłem krótki impuls przy skrajnej wartości OCR0=0.<br /><br />Mając to wgrane do Atmegi 16 na 16 Mhz:<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 /><br /><br /><br />int main(void)<br />{<br />//***** SPRZĘTOWY PWM - 1 KANAŁ OC0 (PB3) *******<br />// ustawienie końcówki OC0 (PB3) sprzętowy PWM jako WYJŚCIE<br />DDRB |= (1&lt;&lt;PB3);<br />// ustawienia TIMER0 w Fast PWM<br />TCCR0 |= (1&lt;&lt;WGM01)|(1&lt;&lt;WGM00);// tryb Fast PWM<br />TCCR0 |= (1&lt;&lt;COM01);// clear at TOP<br />TCCR0 |= (1&lt;&lt;CS02)|(1&lt;&lt;CS00);// preskaler = 1024<br />OCR0=0;// wygaszenie diody w kanale PWM<br /><br />while(1)<br />{<br /><br />}<br /><br />}[/syntax]<br /><br />Mam taki impuls:<br /><a href="https://obrazkiforum.atnel.pl/998/b915ee0f2a1392f88e178893b18879dc.JPG"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/998/b915ee0f2a1392f88e178893b18879dc.JPG" alt="Obrazek" /></a><a href="https://obrazkiforum.atnel.pl/998/d85a0a26b8414d4ecd02a0b65544084a.JPG"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/998/d85a0a26b8414d4ecd02a0b65544084a.JPG" alt="Obrazek" /></a><br /><br />Jest nawet w nocie na to paragraf:<br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />The extreme values for the OCR0 Register represents special cases when generating a<br />PWM waveform output in the fast PWM mode. If the OCR0 is set equal to BOTTOM, the<br />output will be a narrow spike for each MAX+1 timer clock cycle. Setting the OCR0 equal<br />to MAX will result in a constantly high or low output (depending on the polarity of the output<br />set by the COM01:0 bits.)<br /></div><br /><br />Pytanie czy da się coś z tym zrobić aby się tego pozbyć? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Tak z praktycznego punktu widzenia - jak bym takim pwm-em sterował MOSFETA to nie będzie on się przez to nie potrzebnie grzał?<br /><br />Nie mam doświadczenia dlatego pytam, żeby eliminować wszelkie niewiadome <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />Pozdrowienia!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=998">michal1210</a> — 28 sty 2017, o 00:41</p><hr />
]]></content>
</entry>
</feed>