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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2012-06-08T21:42:05+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=1157&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-06-08T21:42:05+01:00</updated>
<published>2012-06-08T21:42:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1157&amp;p=7670#p7670</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1157&amp;p=7670#p7670"/>
<title type="html"><![CDATA[Re: [Atmega8] Timer2 FastPWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1157&amp;p=7670#p7670"><![CDATA[
Odnośnie pierwszego punktu, to zdaje się że właśnie w książce opisałem to zjawisko - wspominając o czymś takim z noty PDF jak GLITCH. Podłącz diodę odwrotnie albo zmień fazę za pomocą bitów COMxx i będzie dobrze <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=54">mirekk36</a> — 8 cze 2012, o 21:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[...kuba...]]></name></author>
<updated>2012-06-08T21:36:06+01:00</updated>
<published>2012-06-08T21:36:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1157&amp;p=7669#p7669</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1157&amp;p=7669#p7669"/>
<title type="html"><![CDATA[[Atmega8] Timer2 FastPWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1157&amp;p=7669#p7669"><![CDATA[
Witam, już jakiś czas temu zakupiłem książkę Pana Mirosława K. i ostatnio zacząłem zabawę z uC AVR a dokładniej ATmega8, jednak mam pare pytań odnośnie FastPWM:<br /><br />    1. Na próbę, chciałem uruchomić ten trym na Timerze2, który steruje portem PB3( MOSI/OC2) i po podłączeniu diody do tego portu, gdy program przejdzie do pętli wygaszającej diodę, dioda przygasa, ale nie gaśnie całkiem tylko lekko się żarzy, poniżej zamieszczam kod programu, mógłbym mi ktoś wytłumaczyć z czym jest związane i czy tak ma być? <br /><br />    2. W programie dodałem obsługę innej diody(zmianę jej stanu) za pomocą klawisza, jednak teraz, żaby program zareagował na klawisz, muszę wcisnąć go w odpowiednim momencie, jest jakas możliwość, przerobienia kodu, żeby dioda reagowała od razu na klawisz, czy najlepiej byłoby wykorzystać do tego zewnętrzne przerwanie? domyślam się, że można dodać warunek z klawiszem w pętli for, ale nie wiem czy to będzie poprawne, bo będzie on sprawdzany kilkaset razy w sekundzie;/<br />[syntax=c]<br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br />#define KEY1_PIN (1&lt;&lt;PC0)<br /><br />#define LED1_PIN (1&lt;&lt;PD0)<br />#define LED2_PIN (1&lt;&lt;PD1)<br /><br />#define LED_TOG PORTD ^= LED1_PIN<br /><br />uint8_t klawisz_wcisniety(uint8_t klawisz);<br /><br />int main(void)<br />{<br /><br />DDRD |=( LED1_PIN |LED2_PIN );<br />PORTD|=( LED1_PIN |LED2_PIN );<br /><br />DDRC  &amp;= ~( KEY1_PIN );<br />PORTC |= ( KEY1_PIN );<br /><br />DDRB |=(1&lt;&lt;PB3 );<br /><br />//Konfiguracha rejestru Timer2<br />TCCR2 |=( 1&lt;&lt;WGM21 ) | ( 1&lt;&lt;WGM20 );// Tryb FastPWM<br />TCCR2 |=( 1&lt;&lt;CS21 );// Preskaler = 8<br />TCCR2 |= ( 1&lt;&lt;COM21 ) | ( 1&lt;&lt;COM20 );// clear OC2 at TOP<br />OCR2=127;<br />sei();<br /><br />uint8_t i;<br /><br />while(1)<br />{<br />if( klawisz_wcisniety( KEY4_PIN ) )<br />{<br />LED_TOG;<br />_delay_ms(200);<br />}<br /><br />for(i=0;i&lt;255;i++)<br />{<br />OCR2=i;<br />_delay_ms(5);<br />}<br />_delay_ms(1000);<br /><br />for(i=255;i;i--)<br />{<br />OCR2=i;<br />_delay_ms(5);<br />}<br />_delay_ms(1000);<br />}<br />}<br /><br />uint8_t klawisz_wcisniety(uint8_t klawisz )<br />{<br />if( ! ( PINC &amp; klawisz ) )<br />{<br />_delay_ms(80);<br />if( ! ( PINC &amp; klawisz ) ) return 1;<br />}<br /><br />return 0;<br />}<br />[/syntax]<br /><br /><span style="color: #FF0000">Poprawiłem znaczniki - kod programu umieszczamy w znacznikach [ syntax = c ]</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=408">...kuba...</a> — 8 cze 2012, o 21:36</p><hr />
]]></content>
</entry>
</feed>