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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-09-22T20:11:39+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=4249&amp;mode</id>
<entry>
<author><name><![CDATA[stanley019]]></name></author>
<updated>2013-09-22T20:11:39+01:00</updated>
<published>2013-09-22T20:11:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50499#p50499</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50499#p50499"/>
<title type="html"><![CDATA[Re: 8 kanałowy programowy PWM prośba o wytłumaczenie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50499#p50499"><![CDATA[
No wyglądają tak samo, zmiany o których mówiliście robiłem na bieżąco, muszę poćwiczyć jeszcze te timery, dzięki wszystkim za pomoc.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=60">stanley019</a> — 22 wrz 2013, o 20:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[barney]]></name></author>
<updated>2013-09-22T19:51:35+01:00</updated>
<published>2013-09-22T19:51:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50493#p50493</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50493#p50493"/>
<title type="html"><![CDATA[Re: 8 kanałowy programowy PWM prośba o wytłumaczenie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50493#p50493"><![CDATA[
No to musisz porównać, ja żadnych czarów nie robiłem nad tym plikiem <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /><br />I niczego nie zmieniałem, oprócz tego co wymieniłem w tym temacie...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=973">barney</a> — 22 wrz 2013, o 19:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[stanley019]]></name></author>
<updated>2013-09-22T19:47:07+01:00</updated>
<published>2013-09-22T19:47:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50492#p50492</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50492#p50492"/>
<title type="html"><![CDATA[Re: 8 kanałowy programowy PWM prośba o wytłumaczenie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50492#p50492"><![CDATA[
@barney to jakieś czary są, skopiowałem kod który jest w poście wyżej i działa :O<br /><br />Chyba że to nie są czary tylko coś w międzyczasie znalazłeś jeszcze?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=60">stanley019</a> — 22 wrz 2013, o 19:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[barney]]></name></author>
<updated>2013-09-22T18:58:30+01:00</updated>
<published>2013-09-22T18:58:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50487#p50487</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50487#p50487"/>
<title type="html"><![CDATA[Re: 8 kanałowy programowy PWM prośba o wytłumaczenie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50487#p50487"><![CDATA[
Dobra, aż układ zbudowałem <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> <br /><br />Kod taki:<br />[syntax=c]/*<br />     *  funkcja main.c<br />     */<br /><br />    //implementacja plików nagłókowych<br /><br />    #include &lt;avr/io.h&gt;<br />    #include &lt;util/delay.h&gt;<br />    #include &lt;avr/interrupt.h&gt;<br /><br />    //definicja 8 zmiennnych do sterowania programowym PWM<br />    //założenie: rozdzielczosc PWM 8bit-&gt; zmienne uint8_t<br />    // przydomek volatile - zmienne muszą mieć możliwosc pracy w przerwaniu i pętli głównej<br /><br />    volatile uint8_t pwm1, pwm2, pwm3, pwm4, pwm5, pwm6, pwm7, pwm8;<br /><br />    //główna pętla programu<br /><br />    int main (void)<br />    {<br />            DDRC=255; //kierunek portu wyjsciowy (dlatego jest znak &quot;=&quot; zamiast &quot;|=&quot; który nie zmienia ustawień pozostałych portów)<br />            //PORTC= 0b11111111;// wszystkie diody zgaszone<br /><br />            //ustawienie timera<br />            TCCR2 |= (1&lt;&lt;WGM21);    //tryb ctc dla timera2<br />            TCCR2 |= (1&lt;&lt;CS20);             //preskaler =1<br />            OCR2 = 199;                             //podział częstotliwosci przez 200<br />            TIMSK |=(1&lt;&lt;OCIE2);             //zezwolenie na przerwanie compare match<br /><br />            sei();                                  //globalne włączenie przerwań<br />            uint8_t i;                              //zmienna i na potrzeby pętli for<br /><br />                    while(1)                                //petla nieskończona<br />                    {<br />                            for(i=0;i&lt;16;i++)       //pętla wyboru dla case<br />                            {<br />                                    switch(i)               //polecenie switch w celu ustawienia wartosci pwm dla portu C<br />                                    {<br /><br />                                    case 0:                 //dioda 1 swieci<br />                                    pwm1=248;<br />                                    pwm2=0;<br />                                    pwm3=0;<br />                                    pwm4=0;<br />                                    pwm5=0;<br />                                    pwm6=0;<br />                                    pwm7=0;<br />                                    pwm8=0;<br />                                    _delay_ms(200);<br />                                    break;<br /><br />                                    case 1:                 //dioda 2 swieci, wczesniejsze przygasaja<br />                                    pwm1=217;<br />                                    pwm2=248;<br />                                    pwm3=0;<br />                                    pwm4=0;<br />                                    pwm5=0;<br />                                    pwm6=0;<br />                                    pwm7=0;<br />                                    pwm8=0;<br />                                    _delay_ms(200);<br />                                    break;<br /><br />                                    case 2:                 //dioda 3 swieci, wczesniejsze przygasaja<br />                                    pwm1=186;<br />                                    pwm2=217;<br />                                    pwm3=248;<br />                                    pwm4=0;<br />                                    pwm5=0;<br />                                    pwm6=0;<br />                                    pwm7=0;<br />                                    pwm8=0;<br />                                    _delay_ms(200);<br />                                    break;<br /><br />                                    case 3:                 //dioda 4 swieci, wczesniejsze przygasaja<br />                                    pwm1=155;<br />                                    pwm2=186;<br />                                    pwm3=217;<br />                                    pwm4=248;<br />                                    pwm5=0;<br />                                    pwm6=0;<br />                                    pwm7=0;<br />                                    pwm8=0;<br />                                    _delay_ms(200);<br />                                    break;<br /><br />                                    case 4:                 //dioda 5 swieci, wczesniejsze przygasaja<br />                                    pwm1=124;<br />                                    pwm2=155;<br />                                    pwm3=186;<br />                                    pwm4=217;<br />                                    pwm5=248;<br />                                    pwm6=0;<br />                                    pwm7=0;<br />                                    pwm8=0;<br />                                    _delay_ms(200);<br />                                    break;<br /><br />                                    case 5:                 //dioda 6 swieci, wczesniejsze przygasaja<br />                                    pwm1=93;<br />                                    pwm2=124;<br />                                    pwm3=155;<br />                                    pwm4=186;<br />                                    pwm5=217;<br />                                    pwm6=248;<br />                                    pwm7=0;<br />                                    pwm8=0;<br />                                    _delay_ms(200);<br />                                    break;<br /><br />                                    case 6:                 //dioda 7 swieci, wczesniejsze przygasaja<br />                                    pwm1=62;<br />                                    pwm2=93;<br />                                    pwm3=124;<br />                                    pwm4=155;<br />                                    pwm5=186;<br />                                    pwm6=217;<br />                                    pwm7=248;<br />                                    pwm8=0;<br />                                    _delay_ms(200);<br />                                    break;<br /><br />                                    case 7:                 //dioda 8 swieci, wczesniejsze przygasaja<br />                                    pwm1=31;<br />                                    pwm2=62;<br />                                    pwm3=93;<br />                                    pwm4=124;<br />                                    pwm5=155;<br />                                    pwm6=186;<br />                                    pwm7=217;<br />                                    pwm8=248;<br />                                    _delay_ms(200);<br />                                    break;<br /><br />                                    case 8:                 //wracamy w drugą strone dioda 8 siwecie wczesniejsze przygasają<br />                                    pwm1=0;<br />                                    pwm2=0;<br />                                    pwm3=0;<br />                                    pwm4=0;<br />                                    pwm5=0;<br />                                    pwm6=0;<br />                                    pwm7=0;<br />                                    pwm8=244;<br />                                    _delay_ms(200);<br />                                    break;<br /><br />                                    case 9:                 //wracamy w drugą strone dioda 7 siwecie wczesniejsze przygasają<br />                                    pwm1=0;<br />                                    pwm2=0;<br />                                    pwm3=0;<br />                                    pwm4=0;<br />                                    pwm5=0;<br />                                    pwm6=0;<br />                                    pwm7=248;<br />                                    pwm8=217;<br />                                    _delay_ms(200);<br />                                    break;<br /><br />                                    case 10:                //wracamy w drugą strone dioda 6 siwecie wczesniejsze przygasają<br />                                    pwm1=0;<br />                                    pwm2=0;<br />                                    pwm3=0;<br />                                    pwm4=0;<br />                                    pwm5=0;<br />                                    pwm6=248;<br />                                    pwm7=217;<br />                                    pwm8=186;<br />                                    _delay_ms(200);<br />                                    break;<br /><br />                                    case 11:                //wracamy w drugą strone dioda 5 siwecie wczesniejsze przygasają<br />                                    pwm1=0;<br />                                    pwm2=0;<br />                                    pwm3=0;<br />                                    pwm4=0;<br />                                    pwm5=248;<br />                                    pwm6=217;<br />                                    pwm7=186;<br />                                    pwm8=155;<br />                                    _delay_ms(50);<br />                                    break;<br /><br />                                    case 12:                //wracamy w drugą strone dioda 4 siwecie wczesniejsze przygasają<br />                                    pwm1=0;<br />                                    pwm2=0;<br />                                    pwm3=0;<br />                                    pwm4=248;<br />                                    pwm5=217;<br />                                    pwm6=186;<br />                                    pwm7=155;<br />                                    pwm8=124;<br />                                    _delay_ms(200);<br />                                    break;<br /><br />                                    case 13:                //wracamy w drugą strone dioda 3 siwecie wczesniejsze przygasają<br />                                    pwm1=0;<br />                                    pwm2=0;<br />                                    pwm3=248;<br />                                    pwm4=217;<br />                                    pwm5=186;<br />                                    pwm6=155;<br />                                    pwm7=124;<br />                                    pwm8=93;<br />                                    _delay_ms(200);<br />                                    break;<br /><br />                                    case 14:                //wracamy w drugą strone dioda 2 siwecie wczesniejsze przygasają<br />                                    pwm1=0;<br />                                    pwm2=248;<br />                                    pwm3=217;<br />                                    pwm4=186;<br />                                    pwm5=155;<br />                                    pwm6=124;<br />                                    pwm7=93;<br />                                    pwm8=62;<br />                                    _delay_ms(200);<br />                                    break;<br /><br />                                    case 15:                //wracamy w drugą strone dioda 1 siwecie wczesniejsze przygasają<br />                                    pwm1=248;<br />                                    pwm2=217;<br />                                    pwm3=186;<br />                                    pwm4=155;<br />                                    pwm5=124;<br />                                    pwm6=93;<br />                                    pwm7=62;<br />                                    pwm8=31;<br />                                    _delay_ms(200);<br />                                    break;<br />                                    }<br />                            }<br /><br />                    }<br />    }<br /><br /><br />            ISR(TIMER2_COMP_vect)<br />            {<br />            static uint8_t cnt;<br />            // bezposrednie sterowanie wyjsciami kanalow PWM<br />            if(cnt &gt;= pwm1) PORTC |= (1&lt;&lt;PC0); else PORTC &amp;=~ (1&lt;&lt;PC0);<br />            if(cnt &gt;= pwm2) PORTC |= (1&lt;&lt;PC1); else PORTC &amp;=~ (1&lt;&lt;PC1);<br />            if(cnt &gt;= pwm3) PORTC |= (1&lt;&lt;PC2); else PORTC &amp;=~ (1&lt;&lt;PC2);<br />            if(cnt &gt;= pwm4) PORTC |= (1&lt;&lt;PC3); else PORTC &amp;=~ (1&lt;&lt;PC3);<br />            if(cnt &gt;= pwm5) PORTC |= (1&lt;&lt;PC4); else PORTC &amp;=~ (1&lt;&lt;PC4);<br />            if(cnt &gt;= pwm6) PORTC |= (1&lt;&lt;PC5); else PORTC &amp;=~ (1&lt;&lt;PC5);<br />            if(cnt &gt;= pwm7) PORTC |= (1&lt;&lt;PC6); else PORTC &amp;=~ (1&lt;&lt;PC6);<br />            if(cnt &gt;= pwm8) PORTC |= (1&lt;&lt;PC7); else PORTC &amp;=~ (1&lt;&lt;PC7);<br /><br />            cnt++; //zwięszenie licznika o 1<br />            }[/syntax]<br />Przebiegi takie:<br /><a href="http://forum.atnel.pl/_obrazki/o/973/81a0b6b21fa593ac5d19d409235c58b5.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/973/81a0b6b21fa593ac5d19d409235c58b5.jpg" alt="Obrazek" /></a> <a href="http://forum.atnel.pl/_obrazki/o/973/693310f1a0d417e5ef45bb97c27ec788.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/973/693310f1a0d417e5ef45bb97c27ec788.jpg" alt="Obrazek" /></a><br /><br />Jak widać częstotliwość się zgadza, bo 8MHz/200/256=156.25Hz<br /><br />Kod wygląda na działający, szukaj błędu w fizycznym układzie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=973">barney</a> — 22 wrz 2013, o 18:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[acid3]]></name></author>
<updated>2013-09-22T18:49:55+01:00</updated>
<published>2013-09-22T18:49:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50482#p50482</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50482#p50482"/>
<title type="html"><![CDATA[Re: 8 kanałowy programowy PWM prośba o wytłumaczenie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50482#p50482"><![CDATA[
Przy 8 Mhz może kolega ustawić spokojnie preskaler na 8 i wartość OCR na 65<br /><br />To, jeśli się nie pomylliłem powinno dać ok 60Hz i nie będzie widać mrugania i proc odetchnie.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br />ale brak reakcji to nie wina nie wyrabiania się procesora raczej ...<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br />a co i gdzie dopisałeś do kontrolnego migania diodą ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=944">acid3</a> — 22 wrz 2013, o 18:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[barney]]></name></author>
<updated>2013-09-22T18:35:48+01:00</updated>
<published>2013-09-22T18:35:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50475#p50475</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50475#p50475"/>
<title type="html"><![CDATA[Re: 8 kanałowy programowy PWM prośba o wytłumaczenie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50475#p50475"><![CDATA[
Jeżeli przez nic się nie dzieje masz na myśli, że nie zmienia swojego stanu, to poluzuj częstotliwość przerwań. Ustaw np. prescaler na 8 i zobacz czy mu się polepszy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=973">barney</a> — 22 wrz 2013, o 18:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[stanley019]]></name></author>
<updated>2013-09-22T18:23:13+01:00</updated>
<published>2013-09-22T18:23:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50464#p50464</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50464#p50464"/>
<title type="html"><![CDATA[Re: 8 kanałowy programowy PWM prośba o wytłumaczenie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50464#p50464"><![CDATA[
@barnej, sory za długą przerwę, ale do rzeczy JTAG wyłączony, z dodatkowa dioda w pętli for zaraz na samym początku też nic się nie dzieje. na początku wszystkie LEDY raz mrugną i koniec.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=60">stanley019</a> — 22 wrz 2013, o 18:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[barney]]></name></author>
<updated>2013-09-22T10:56:11+01:00</updated>
<published>2013-09-22T10:56:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50394#p50394</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50394#p50394"/>
<title type="html"><![CDATA[Re: 8 kanałowy programowy PWM prośba o wytłumaczenie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50394#p50394"><![CDATA[
Dodaj sobie w pętli for błyskanie dodatkową diodą za każdym jej przebiegiem. Najprawdopodobniej przerwania co 200 cykli zegarowych zabierają za dużo czasu procesora (nie mówiąc o okropnym wydłużeniu instrukcji &quot;delay&quot;).<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 23 minutach ]</span></strong><br /><br />JTAG został wyłączony?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=973">barney</a> — 22 wrz 2013, o 10:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[stanley019]]></name></author>
<updated>2013-09-22T10:47:32+01:00</updated>
<published>2013-09-22T10:47:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50392#p50392</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50392#p50392"/>
<title type="html"><![CDATA[Re: 8 kanałowy programowy PWM prośba o wytłumaczenie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50392#p50392"><![CDATA[
Aaa to to poprawione jest tyle że dalej nie chce działać.<br />Zastanawiam się czy jest możliwe żebym coś skopał z konfiguracją chociaż uC i częstotliwość są ok bo gdy samo błyskanie diodą wstawię do programu to działa<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=60">stanley019</a> — 22 wrz 2013, o 10:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[barney]]></name></author>
<updated>2013-09-22T10:44:45+01:00</updated>
<published>2013-09-22T10:44:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50391#p50391</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50391#p50391"/>
<title type="html"><![CDATA[Re: 8 kanałowy programowy PWM prośba o wytłumaczenie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50391#p50391"><![CDATA[
To nie jest instrukcja, mówię tylko, że należy zmienić linijkę z powodu błędu (zamiast przypisania wartości masz jedynie obliczenie wyrażenia). A &quot;do&quot; oznacza, że linijka jest <strong>do</strong> zmiany na poniższą...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=973">barney</a> — 22 wrz 2013, o 10:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[stanley019]]></name></author>
<updated>2013-09-22T10:44:50+01:00</updated>
<published>2013-09-22T10:41:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50390#p50390</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50390#p50390"/>
<title type="html"><![CDATA[Re: 8 kanałowy programowy PWM prośba o wytłumaczenie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50390#p50390"><![CDATA[
schemat:<br /><a href="http://forum.atnel.pl/_obrazki/o/60/e4d0e1a71e12d320edd79335669c5609.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/60/e4d0e1a71e12d320edd79335669c5609.png" alt="Obrazek" /></a><br /><br />zasilanie reset itp pominąłem, działać działa bo to płytka testowa ATB <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />cały czas się kompiluje, tyle że diody nie chcą świecić.<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />if(cnt &gt;= pwm1) PORTC |= (1&lt;&lt;PC0); else PORTC &amp;~~ (1&lt;&lt;PC0);<br />do<br />if(cnt &gt;= pwm1) PORTC |= (1&lt;&lt;PC0); else PORTC &amp;=~ (1&lt;&lt;PC0);<br /></div><br /><br />Instrukcje w przerwaniu poprawione, w obu listingach, ale nie bardzo rozumiem po co tam ta instrukcja do?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=60">stanley019</a> — 22 wrz 2013, o 10:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[acid3]]></name></author>
<updated>2013-09-22T10:35:25+01:00</updated>
<published>2013-09-22T10:35:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50389#p50389</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50389#p50389"/>
<title type="html"><![CDATA[Re: 8 kanałowy programowy PWM prośba o wytłumaczenie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50389#p50389"><![CDATA[
pisałem właśnie wyżej , że coś tu nie gra a kolega stanley nie poprawił<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=944">acid3</a> — 22 wrz 2013, o 10:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[barney]]></name></author>
<updated>2013-09-22T10:34:21+01:00</updated>
<published>2013-09-22T10:34:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50388#p50388</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50388#p50388"/>
<title type="html"><![CDATA[Re: 8 kanałowy programowy PWM prośba o wytłumaczenie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50388#p50388"><![CDATA[
if(cnt &gt;= pwm1) PORTC |= (1&lt;&lt;PC0); else PORTC &amp;~~ (1&lt;&lt;PC0);<br />do<br />if(cnt &gt;= pwm1) PORTC |= (1&lt;&lt;PC0); else PORTC &amp;=~ (1&lt;&lt;PC0);<br /><br />i analogicznie w pozostałych<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=973">barney</a> — 22 wrz 2013, o 10:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[acid3]]></name></author>
<updated>2013-09-22T10:33:16+01:00</updated>
<published>2013-09-22T10:33:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50387#p50387</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50387#p50387"/>
<title type="html"><![CDATA[Re: 8 kanałowy programowy PWM prośba o wytłumaczenie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50387#p50387"><![CDATA[
No i się koledze skompilowało <br /><br />teraz należy to wgrać i podziwiać<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=944">acid3</a> — 22 wrz 2013, o 10:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[stanley019]]></name></author>
<updated>2013-09-22T10:20:49+01:00</updated>
<published>2013-09-22T10:20:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50386#p50386</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50386#p50386"/>
<title type="html"><![CDATA[Re: 8 kanałowy programowy PWM prośba o wytłumaczenie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50386#p50386"><![CDATA[
includy poprawione,<br /><br />reszta kodu już jest ok przynajmniej tak mam w edytorze.<br /><br />DDRC=PORTC ok tu ma kolega racje poprawione, w przerwaniu też namieszałem i też poprawione,<br /><br />[syntax=c]/*<br /> *  funkcja main.c<br /> */<br /><br />//implementacja plików nagłókowych<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br />//definicja 8 zmiennnych do sterowania programowym PWM<br />//założenie: rozdzielczosc PWM 8bit-&gt; zmienne uint8_t<br />// przydomek volatile - zmienne muszą mieć możliwosc pracy w przerwaniu i pętli głównej<br /><br />volatile uint8_t pwm1, pwm2, pwm3, pwm4, pwm5, pwm6, pwm7, pwm8;<br /><br />//główna pętla programu<br /><br />int main (void)<br />{<br />DDRC=255; //kierunek portu wyjsciowy (dlatego jest znak &quot;=&quot; zamiast &quot;|=&quot; który nie zmienia ustawień pozostałych portów)<br />//PORTC= 0b11111111;// wszystkie diody zgaszone<br /><br />//ustawienie timera<br />TCCR2 |= (1&lt;&lt;WGM21);//tryb ctc dla timera2<br />TCCR2 |= (1&lt;&lt;CS20);//preskaler =1<br />OCR2 = 199;//podział częstotliwosci przez 200<br />TIMSK |=(1&lt;&lt;OCIE2);//zezwolenie na przerwanie compare match<br /><br />sei();//globalne włączenie przerwań<br />uint8_t i;//zmienna i na potrzeby pętli for<br /><br />while(1)//petla nieskończona<br />{<br />for(i=0;i&lt;16;i++)//pętla wyboru dla case<br />{<br />switch(i)//polecenie switch w celu ustawienia wartosci pwm dla portu C<br />{<br /><br />case 0://dioda 1 swieci<br />pwm1=248;<br />pwm2=0;<br />pwm3=0;<br />pwm4=0;<br />pwm5=0;<br />pwm6=0;<br />pwm7=0;<br />pwm8=0;<br />_delay_ms(200);<br />break;<br /><br />case 1://dioda 2 swieci, wczesniejsze przygasaja<br />pwm1=217;<br />pwm2=248;<br />pwm3=0;<br />pwm4=0;<br />pwm5=0;<br />pwm6=0;<br />pwm7=0;<br />pwm8=0;<br />_delay_ms(200);<br />break;<br /><br />case 2://dioda 3 swieci, wczesniejsze przygasaja<br />pwm1=186;<br />pwm2=217;<br />pwm3=248;<br />pwm4=0;<br />pwm5=0;<br />pwm6=0;<br />pwm7=0;<br />pwm8=0;<br />_delay_ms(200);<br />break;<br /><br />case 3://dioda 4 swieci, wczesniejsze przygasaja<br />pwm1=155;<br />pwm2=186;<br />pwm3=217;<br />pwm4=248;<br />pwm5=0;<br />pwm6=0;<br />pwm7=0;<br />pwm8=0;<br />_delay_ms(200);<br />break;<br /><br />case 4://dioda 5 swieci, wczesniejsze przygasaja<br />pwm1=124;<br />pwm2=155;<br />pwm3=186;<br />pwm4=217;<br />pwm5=248;<br />pwm6=0;<br />pwm7=0;<br />pwm8=0;<br />_delay_ms(200);<br />break;<br /><br />case 5://dioda 6 swieci, wczesniejsze przygasaja<br />pwm1=93;<br />pwm2=124;<br />pwm3=155;<br />pwm4=186;<br />pwm5=217;<br />pwm6=248;<br />pwm7=0;<br />pwm8=0;<br />_delay_ms(200);<br />break;<br /><br />case 6://dioda 7 swieci, wczesniejsze przygasaja<br />pwm1=62;<br />pwm2=93;<br />pwm3=124;<br />pwm4=155;<br />pwm5=186;<br />pwm6=217;<br />pwm7=248;<br />pwm8=0;<br />_delay_ms(200);<br />break;<br /><br />case 7://dioda 8 swieci, wczesniejsze przygasaja<br />pwm1=31;<br />pwm2=62;<br />pwm3=93;<br />pwm4=124;<br />pwm5=155;<br />pwm6=186;<br />pwm7=217;<br />pwm8=248;<br />_delay_ms(200);<br />break;<br /><br />case 8://wracamy w drugą strone dioda 8 siwecie wczesniejsze przygasają<br />pwm1=0;<br />pwm2=0;<br />pwm3=0;<br />pwm4=0;<br />pwm5=0;<br />pwm6=0;<br />pwm7=0;<br />pwm8=244;<br />_delay_ms(200);<br />break;<br /><br />case 9://wracamy w drugą strone dioda 7 siwecie wczesniejsze przygasają<br />pwm1=0;<br />pwm2=0;<br />pwm3=0;<br />pwm4=0;<br />pwm5=0;<br />pwm6=0;<br />pwm7=248;<br />pwm8=217;<br />_delay_ms(200);<br />break;<br /><br />case 10://wracamy w drugą strone dioda 6 siwecie wczesniejsze przygasają<br />pwm1=0;<br />pwm2=0;<br />pwm3=0;<br />pwm4=0;<br />pwm5=0;<br />pwm6=248;<br />pwm7=217;<br />pwm8=186;<br />_delay_ms(200);<br />break;<br /><br />case 11://wracamy w drugą strone dioda 5 siwecie wczesniejsze przygasają<br />pwm1=0;<br />pwm2=0;<br />pwm3=0;<br />pwm4=0;<br />pwm5=248;<br />pwm6=217;<br />pwm7=186;<br />pwm8=155;<br />_delay_ms(50);<br />break;<br /><br />case 12://wracamy w drugą strone dioda 4 siwecie wczesniejsze przygasają<br />pwm1=0;<br />pwm2=0;<br />pwm3=0;<br />pwm4=248;<br />pwm5=217;<br />pwm6=186;<br />pwm7=155;<br />pwm8=124;<br />_delay_ms(200);<br />break;<br /><br />case 13://wracamy w drugą strone dioda 3 siwecie wczesniejsze przygasają<br />pwm1=0;<br />pwm2=0;<br />pwm3=248;<br />pwm4=217;<br />pwm5=186;<br />pwm6=155;<br />pwm7=124;<br />pwm8=93;<br />_delay_ms(200);<br />break;<br /><br />case 14://wracamy w drugą strone dioda 2 siwecie wczesniejsze przygasają<br />pwm1=0;<br />pwm2=248;<br />pwm3=217;<br />pwm4=186;<br />pwm5=155;<br />pwm6=124;<br />pwm7=93;<br />pwm8=62;<br />_delay_ms(200);<br />break;<br /><br />case 15://wracamy w drugą strone dioda 1 siwecie wczesniejsze przygasają<br />pwm1=248;<br />pwm2=217;<br />pwm3=186;<br />pwm4=155;<br />pwm5=124;<br />pwm6=93;<br />pwm7=62;<br />pwm8=31;<br />_delay_ms(200);<br />break;<br />}<br />}<br /><br />}<br />}<br /><br /><br />ISR(TIMER2_COMP_vect)<br />{<br />static uint8_t cnt;<br />// bezposrednie sterowanie wyjsciami kanalow PWM<br />if(cnt &gt;= pwm1) PORTC |= (1&lt;&lt;PC0); else PORTC &amp;~~ (1&lt;&lt;PC0);<br />if(cnt &gt;= pwm2) PORTC |= (1&lt;&lt;PC1); else PORTC &amp;~~ (1&lt;&lt;PC1);<br />if(cnt &gt;= pwm3) PORTC |= (1&lt;&lt;PC2); else PORTC &amp;~~ (1&lt;&lt;PC2);<br />if(cnt &gt;= pwm4) PORTC |= (1&lt;&lt;PC3); else PORTC &amp;~~ (1&lt;&lt;PC3);<br />if(cnt &gt;= pwm5) PORTC |= (1&lt;&lt;PC4); else PORTC &amp;~~ (1&lt;&lt;PC4);<br />if(cnt &gt;= pwm6) PORTC |= (1&lt;&lt;PC5); else PORTC &amp;~~ (1&lt;&lt;PC5);<br />if(cnt &gt;= pwm7) PORTC |= (1&lt;&lt;PC6); else PORTC &amp;~~ (1&lt;&lt;PC6);<br />if(cnt &gt;= pwm8) PORTC |= (1&lt;&lt;PC7); else PORTC &amp;~~ (1&lt;&lt;PC7);<br /><br />cnt++; //zwięszenie licznika o 1<br />}[/syntax]<br /><br /><br />Konsola mówi do mnie tak:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">**** Build of configuration Release for project rider ****<br /><br />make all <br />Building file: ../main.c<br />Invoking: AVR Compiler<br />avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega32 -DF_CPU=8000000UL -MMD -MP -MF&quot;main.d&quot; -MT&quot;main.d&quot; -c -o &quot;main.o&quot; &quot;../main.c&quot;<br />../main.c: In function '__vector_4':<br />../main.c:246: warning: value computed is not used<br />../main.c:247: warning: value computed is not used<br />../main.c:248: warning: value computed is not used<br />../main.c:249: warning: value computed is not used<br />../main.c:250: warning: value computed is not used<br />../main.c:251: warning: value computed is not used<br />../main.c:252: warning: value computed is not used<br />../main.c:253: warning: value computed is not used<br />Finished building: ../main.c<br /> <br />Building target: rider.elf<br />Invoking: AVR C Linker<br />avr-gcc -Wl,-Map,rider.map -mmcu=atmega32 -o &quot;rider.elf&quot;  ./main.o   <br />Finished building target: rider.elf<br /> <br />Invoking: AVR Create Extended Listing<br />avr-objdump -h -S rider.elf  &gt;&quot;rider.lss&quot;<br />Finished building: rider.lss<br /> <br />Create Flash image (ihex format)<br />avr-objcopy -R .eeprom -O ihex rider.elf  &quot;rider.hex&quot;<br />Finished building: rider.hex<br /> <br />Create eeprom image (ihex format)<br />avr-objcopy -j .eeprom --no-change-warnings --change-section-lma .eeprom=0 -O ihex rider.elf  &quot;rider.eep&quot;<br />Finished building: rider.eep<br /> <br />Invoking: Print Size<br />avr-size --format=avr --mcu=atmega32 rider.elf<br />AVR Memory Usage<br />----------------<br />Device: atmega32<br /><br />Program:    1220 bytes (3.7% Full)<br />(.text + .data + .bootloader)<br /><br />Data:          9 bytes (0.4% Full)<br />(.data + .bss + .noinit)<br /><br /><br />Finished building: sizedummy<br /> <br /><br />**** Build Finished ****<br /><br /></div><br /><br /><br />Schemat za chwilkę narysuje, choć mówiąc szczerze jest prosty z PORTU C do (8 przewodów) LED przez rezystory do  VCC.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=60">stanley019</a> — 22 wrz 2013, o 10:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[acid3]]></name></author>
<updated>2013-09-22T09:50:18+01:00</updated>
<published>2013-09-22T09:50:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50385#p50385</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50385#p50385"/>
<title type="html"><![CDATA[Re: 8 kanałowy programowy PWM prośba o wytłumaczenie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50385#p50385"><![CDATA[
to teraz schemat i wyjście z konsoli po kompilacji<br /><br />Kod dalej nie jest wklejony zgodnie z regulaminem (chyba, że się mylę, a to bardzo możliwe)<br /><br />Dalej masz poucinane, przy include'ach na przykład<br /><br />Nie jestem pewien ale PORTC chyba nie ma tu konkretnej wartości<br /><div class="quotetitle">stanley019 napisał(a):</div><div class="quotecontent"><br />    DDRC=PORTC; //kierunek portu wyjsciowy (dlatego jest znak &quot;=&quot; zamiast &quot;|=&quot; który nie zmienia ustawień pozostałych portów) <br /></div><br /><br />spróbuj dać <br /><br />[syntax=c]DDRC = 255[/syntax]<br /><br /><br /><div class="quotetitle">stanley019 napisał(a):</div><div class="quotecontent"><br />    if(cnt &gt;= pwm1) PORTC |= (1&lt;&lt; PC0); else PORTC&amp;~~(1&lt;&lt; PORTC0); <br />    if(cnt &gt;= pwm2) PORTC |= (1&lt;&lt; PC1); else PORTC&amp;~~(1&lt;&lt; PORTC1); <br />    if(cnt &gt;= pwm3) PORTC |= (1&lt;&lt; PC2); else PORTC&amp;~~(1&lt;&lt; PORTC2); <br />    if(cnt &gt;= pwm4) PORTC |= (1&lt;&lt; PC3); else PORTC&amp;~~(1&lt;&lt; PORTC3); <br />    if(cnt &gt;= pwm5) PORTC |= (1&lt;&lt; PC4); else PORTC&amp;~~(1&lt;&lt; PORTC4); <br />    if(cnt &gt;= pwm6) PORTC |= (1&lt;&lt; PC5); else PORTC&amp;~~(1&lt;&lt; PORTC5); <br />    if(cnt &gt;= pwm7) PORTC |= (1&lt;&lt; PC6); else PORTC&amp;~~(1&lt;&lt; PORTC6); <br />    if(cnt &gt;= pwm8) PORTC |= (1&lt;&lt; PC7); else PORTC&amp;~~(1&lt;&lt; PORTC7); <br /></div> <br /><br />tutaj kolega też coś chyba namieszał<br />wydaje mi się , że jakoś tak to raczej powinno wyglądać<br /><br />[syntax=c]if(cnt &gt;= pwm2) PORTC |= (1&lt;&lt; PC1); else PORTC &amp;= ~(1&lt;&lt; PC1);[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=944">acid3</a> — 22 wrz 2013, o 09:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[stanley019]]></name></author>
<updated>2013-09-22T09:39:17+01:00</updated>
<published>2013-09-22T09:39:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50383#p50383</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50383#p50383"/>
<title type="html"><![CDATA[Re: 8 kanałowy programowy PWM prośba o wytłumaczenie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50383#p50383"><![CDATA[
Poprawiłem składnie w 1 poście, dziwna sprawa z tym przesunięciem bitowym, tylko tam urwało <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Niestety program nie działa.<br />Po wyczyszczeniu problem dalej występuje, z resztą na potrzeby tego programiku stworzyłem sobie nowy projekt.<br />czegoś pewnie brakuje, zastanawiam się tylko czego, bo program z niebieskiej książki jest bardzo podobny różnice są w pętli nieskończonej &quot;while(1)&quot; ale to nie powinno mieć wpływu na zmienną cnt bo tam nie jest wykorzystywana.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=60">stanley019</a> — 22 wrz 2013, o 09:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[acid3]]></name></author>
<updated>2013-09-22T09:20:33+01:00</updated>
<published>2013-09-22T09:20:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50381#p50381</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50381#p50381"/>
<title type="html"><![CDATA[Re: 8 kanałowy programowy PWM prośba o wytłumaczenie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50381#p50381"><![CDATA[
Warning warningiem, może trzeba zrobić clean albo coś.<br />Czy program po wgraniu do proca działa?<br /><br />Coś z tą wklejoną składnią jest nie tak bo czegoś tam brakuje w paru miejscach (wyedytuj i wklej zgodnie z regulaminem bo przyjdzie mod i będzie marudził)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=944">acid3</a> — 22 wrz 2013, o 09:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[stanley019]]></name></author>
<updated>2013-09-22T10:45:39+01:00</updated>
<published>2013-09-22T08:52:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50379#p50379</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50379#p50379"/>
<title type="html"><![CDATA[8 kanałowy programowy PWM prośba o wytłumaczenie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4249&amp;p=50379#p50379"><![CDATA[
Witam wszystkich,<br /><br />Próbuje stworzyć efekt świetlny który będzie zaświecał diody i gasił płynnie wcześniej zapalone, taki jak serialu o czarnym samochodzie.<br /><br />Puki co chciałbym go uruchomić na płytce testowe ATB ATmega 32 taktowana 8MHz z wewnętrznego źródła.<br /><br />Wymyśliłem sobie taki kod :<br /><br />[syntax=c]/*<br /> *  funkcja main.c<br /> */<br /><br />//implementacja plików nagłókowych<br /><br />#include &lt; avr/io.h &gt;<br />#include &lt; util/delay.h &gt;<br />#include &lt; avr/interrupt.h &gt;<br /><br />//definicja 8 zmiennnych do sterowania programowym PWM<br />//założenie: rozdzielczosc PWM 8bit-&gt; zmienne uint8_t<br />// przydomek volatile - zmienne muszą mieć możliwosc pracy w przerwaniu i pętli głównej<br /><br />volatile uint8_t pwm1, pwm2, pwm3, pwm4, pwm5, pwm6, pwm7, pwm8;<br /><br />//główna pętla programu<br /><br />int main (void)<br />{<br />DDRC=PORTC; //kierunek portu wyjsciowy (dlatego jest znak &quot;=&quot; zamiast &quot;|=&quot; który nie zmienia ustawień pozostałych portów)<br />PORTC= 0b11111111;// wszystkie diody zgaszone<br /><br />//ustawienie timera<br />TCCR2 |= (1 &lt;&lt; WGM21);//tryb ctc dla timera2<br />TCCR2 |= (1 &lt;&lt; CS20);//preskaler =1<br />OCR2 = 199;//podział częstotliwosci przez 200<br />TIMSK |=(1 &lt;&lt; OCIE2);//zezwolenie na przerwanie compare match<br /><br />sei();//globalne włączenie przerwań<br />uint8_t i;//zmienna i na potrzeby pętli for<br /><br />while(1)//petla nieskończona<br />{<br />for(i=0;i&lt;16;i++)//pętla wyboru dla case<br />{<br />switch(i)//polecenie switch w celu ustawienia wartosci pwm dla portu C<br />{<br /><br />case 0://dioda 1 swieci<br />pwm1=248;<br />pwm2=0;<br />pwm3=0;<br />pwm4=0;<br />pwm5=0;<br />pwm6=0;<br />pwm7=0;<br />pwm8=0;<br />_delay_ms(50);<br />break;<br /><br />case 1://dioda 2 swieci, wczesniejsze przygasaja<br />pwm1=217;<br />pwm2=248;<br />pwm3=0;<br />pwm4=0;<br />pwm5=0;<br />pwm6=0;<br />pwm7=0;<br />pwm8=0;<br />_delay_ms(50);<br />break;<br /><br />case 2://dioda 3 swieci, wczesniejsze przygasaja<br />pwm1=186;<br />pwm2=217;<br />pwm3=248;<br />pwm4=0;<br />pwm5=0;<br />pwm6=0;<br />pwm7=0;<br />pwm8=0;<br />_delay_ms(50);<br />break;<br /><br />case 3://dioda 4 swieci, wczesniejsze przygasaja<br />pwm1=155;<br />pwm2=186;<br />pwm3=217;<br />pwm4=248;<br />pwm5=0;<br />pwm6=0;<br />pwm7=0;<br />pwm8=0;<br />_delay_ms(50);<br />break;<br /><br />case 4://dioda 5 swieci, wczesniejsze przygasaja<br />pwm1=124;<br />pwm2=155;<br />pwm3=186;<br />pwm4=217;<br />pwm5=248;<br />pwm6=0;<br />pwm7=0;<br />pwm8=0;<br />_delay_ms(50);<br />break;<br /><br />case 5://dioda 6 swieci, wczesniejsze przygasaja<br />pwm1=93;<br />pwm2=124;<br />pwm3=155;<br />pwm4=186;<br />pwm5=217;<br />pwm6=248;<br />pwm7=0;<br />pwm8=0;<br />_delay_ms(50);<br />break;<br /><br />case 6://dioda 7 swieci, wczesniejsze przygasaja<br />pwm1=62;<br />pwm2=93;<br />pwm3=124;<br />pwm4=155;<br />pwm5=186;<br />pwm6=217;<br />pwm7=248;<br />pwm8=0;<br />_delay_ms(50);<br />break;<br /><br />case 7://dioda 8 swieci, wczesniejsze przygasaja<br />pwm1=31;<br />pwm2=62;<br />pwm3=93;<br />pwm4=124;<br />pwm5=155;<br />pwm6=186;<br />pwm7=217;<br />pwm8=248;<br />_delay_ms(50);<br />break;<br /><br />case 8://wracamy w drugą strone dioda 8 siwecie wczesniejsze przygasają<br />pwm1=0;<br />pwm2=0;<br />pwm3=0;<br />pwm4=0;<br />pwm5=0;<br />pwm6=0;<br />pwm7=0;<br />pwm8=244;<br />_delay_ms(50);<br />break;<br /><br />case 9://wracamy w drugą strone dioda 7 siwecie wczesniejsze przygasają<br />pwm1=0;<br />pwm2=0;<br />pwm3=0;<br />pwm4=0;<br />pwm5=0;<br />pwm6=0;<br />pwm7=248;<br />pwm8=217;<br />_delay_ms(50);<br />break;<br /><br />case 10://wracamy w drugą strone dioda 6 siwecie wczesniejsze przygasają<br />pwm1=0;<br />pwm2=0;<br />pwm3=0;<br />pwm4=0;<br />pwm5=0;<br />pwm6=248;<br />pwm7=217;<br />pwm8=186;<br />_delay_ms(50);<br />break;<br /><br />case 11://wracamy w drugą strone dioda 5 siwecie wczesniejsze przygasają<br />pwm1=0;<br />pwm2=0;<br />pwm3=0;<br />pwm4=0;<br />pwm5=248;<br />pwm6=217;<br />pwm7=186;<br />pwm8=155;<br />_delay_ms(50);<br />break;<br /><br />case 12://wracamy w drugą strone dioda 4 siwecie wczesniejsze przygasają<br />pwm1=0;<br />pwm2=0;<br />pwm3=0;<br />pwm4=248;<br />pwm5=217;<br />pwm6=186;<br />pwm7=155;<br />pwm8=124;<br />_delay_ms(50);<br />break;<br /><br />case 13://wracamy w drugą strone dioda 3 siwecie wczesniejsze przygasają<br />pwm1=0;<br />pwm2=0;<br />pwm3=248;<br />pwm4=217;<br />pwm5=186;<br />pwm6=155;<br />pwm7=124;<br />pwm8=93;<br />_delay_ms(50);<br />break;<br /><br />case 14://wracamy w drugą strone dioda 2 siwecie wczesniejsze przygasają<br />pwm1=0;<br />pwm2=248;<br />pwm3=217;<br />pwm4=186;<br />pwm5=155;<br />pwm6=124;<br />pwm7=93;<br />pwm8=62;<br />_delay_ms(50);<br />break;<br /><br />case 15://wracamy w drugą strone dioda 1 siwecie wczesniejsze przygasają<br />pwm1=248;<br />pwm2=217;<br />pwm3=186;<br />pwm4=155;<br />pwm5=124;<br />pwm6=93;<br />pwm7=62;<br />pwm8=31;<br />_delay_ms(50);<br />break;<br />}<br />}<br /><br />}<br />}<br /><br /><br />ISR(TIMER2_COMP_vect)<br />{<br />static uint8_t cnt;<br />// bezposrednie sterowanie wyjsciami kanalow PWM<br />if(cnt &gt;= pwm1) PORTC |= (1&lt;&lt; PC0); else PORTC&amp;~~(1&lt;&lt; PC0);<br />if(cnt &gt;= pwm2) PORTC |= (1&lt;&lt; PC1); else PORTC&amp;~~(1&lt;&lt; PC1);<br />if(cnt &gt;= pwm3) PORTC |= (1&lt;&lt; PC2); else PORTC&amp;~~(1&lt;&lt; PC2);<br />if(cnt &gt;= pwm4) PORTC |= (1&lt;&lt; PC3); else PORTC&amp;~~(1&lt;&lt; PC3);<br />if(cnt &gt;= pwm5) PORTC |= (1&lt;&lt; PC4); else PORTC&amp;~~(1&lt;&lt; PC4);<br />if(cnt &gt;= pwm6) PORTC |= (1&lt;&lt; PC5); else PORTC&amp;~~(1&lt;&lt; PC5);<br />if(cnt &gt;= pwm7) PORTC |= (1&lt;&lt; PC6); else PORTC&amp;~~(1&lt;&lt; PC6);<br />if(cnt &gt;= pwm8) PORTC |= (1&lt;&lt; PC7); else PORTC&amp;~~(1&lt;&lt; PC7);<br /><br />cnt++; //zwiększenie licznika o 1<br />}[/syntax]<br /><br />Problem w tym że dostaje od eclipsa warning że zmienna cnt nie jest nigdzie wykorzystana, czy ktoś z zacnych kolegów może wytłumaczyć co robię źle? Program powstał na podstawie przykładu z niebieskiej książki Mirka tyle że tam nie było takie problemu. Osobiście uważam że ta zmienna wykorzystywana jest tylko w obsłudze przerwania no ale jednak chyba nie zupełnie mam racje bo jednak program nie działa tak jakbym chciał (wszystkie diody są zgaszone). Czegoś pewnie brakuje w tym programie, ale chyba nie mam pomysłu czego. <br /><br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=60">stanley019</a> — 22 wrz 2013, o 08:52</p><hr />
]]></content>
</entry>
</feed>