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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-02-13T16:03:04+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=5750&amp;mode</id>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2014-02-13T16:03:04+01:00</updated>
<published>2014-02-13T16:03:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=70305#p70305</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=70305#p70305"/>
<title type="html"><![CDATA[Re: Timery Programowe [ATmega 8]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=70305#p70305"><![CDATA[
Dzięki za pomoc i dobre chęci ale niestety nie chce działać. Wpisując twój kod ciągle świecą się diody.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 13 lut 2014, o 16:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2014-02-10T20:17:11+01:00</updated>
<published>2014-02-10T20:17:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=69737#p69737</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=69737#p69737"/>
<title type="html"><![CDATA[Re: Timery Programowe [ATmega 8]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=69737#p69737"><![CDATA[
Zamiast odpalać przerwania możesz spróbować badać stan flagi od przepełnienia Timera0 np. w ten sposób<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 /> uint16_t Timer1, Timer2;<br /><br /><br />void prog_timer(void);<br /><br />int main(void)<br />{<br />DDRD |= (1&lt;&lt;PD6) | (1&lt;&lt;PD7);          //wyjścia - diody LED<br /><br />TCCR0 |= (1&lt;&lt;CS02) | (1&lt;&lt;CS00);//preskaler 1024<br />TCNT0 = 178;//ok. 10ms - 100Hz<br />//TIMSK |= (1&lt;&lt;TOIE0);//odblokowanie przerwania Timer0 Overflow<br /><br />//sei();<br /><br />while(1)<br />{<br />prog_timer();<br /><br />if(!Timer1)<br />{<br />Timer1 = 20;<br />PORTD ^= (1&lt;&lt;PD6);<br />}<br /><br />if(!Timer2)<br />{<br />Timer2 = 100;<br />PORTD ^= (1&lt;&lt;PD7);<br />}<br />}<br />}<br /><br />void prog_timer(void)<br />{<br />uint16_t n;<br /><br />if( TIFR &amp; (1&lt;&lt;TOV0) )//jeśli flaga przepełnienia ustawiona<br />{<br />TIFR |= (1&lt;&lt;TOV0);//wyzeruj flagę<br />TCNT0 = 178;//wpisz wartość początkową do licznika Timera0<br /><br />n = Timer1;/* 100Hz Timer1 */<br />if (n) Timer1 = --n;<br /><br />n = Timer2;/* 100Hz Timer1 */<br />if (n) Timer2 = --n;<br />}<br /><br />}[/syntax]<br /><br />W przypadku tego rozwiązania pętla while musi się wykonywać jak najszybciej a wszystko w niej powinno być nieblokujące.<br /><br />W twoim programie możesz spróbować wywoływać funkcję prog_timer() wewnątrz pętli while w funkcji mix_channel().<br />[syntax=c]void mix_channel(void)<br />{<br />while(1)<br />{<br />prog_timer();<br /><br />if (!Timer1)<br />{<br />Timer1 = 255;<br />sw++;<br />}<br /><br />if (sw &gt; 3) sw = 1;<br />if (sw == 1)<br />{<br />if (!Timer2)<br />{<br />Timer2 = 1;<br />if (m&gt;0) m--;<br />if (n&lt;255) n++;<br />o = 0;<br />}<br />}<br />if (sw == 2)<br />{<br />if (!Timer2)<br />{<br />Timer2 = 1;<br />m = 0;<br />if (n&gt;0) n--;<br />if (o&lt;255) o++;<br />}<br />}<br />if (sw == 3)<br />{<br />if (!Timer2)<br />{<br />Timer2 = 1;<br />if (m&lt;255) m++;<br />n = 0;<br />if (o&gt;0) o--;<br />}<br />}<br /><br />OCR1A = m;<br />OCR2 = n;<br />OCR1B = o;<br />}<br />}[/syntax]<br /><br />Sprawdź czy takie rozwiązanie ci zadziała.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 10 lut 2014, o 20:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2014-02-09T14:29:23+01:00</updated>
<published>2014-02-09T14:29:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=69449#p69449</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=69449#p69449"/>
<title type="html"><![CDATA[Re: Timery Programowe [ATmega 8]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=69449#p69449"><![CDATA[
Dziękuje koledzy za sprawdzanie kodu <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> faktycznie chyba ATmega jest uszkodzona... choć uparcie twierdze, że nie... dlaczego?<br />Zrobiłem jeszcze jeden test na timerach. Odpaliłem 3 Timery sprzętowe w trybie PWM. Wszystko działa tak jak powinno. Tak więc Timery są OK. Problem zaczyna się jak wrzucam przerwania...<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 />// główna funkcja programu main()<br />int main(void)<br />{<br /><br />    //***** KANAŁ BLUE *******<br />    //***** SPRZĘTOWY PWM - 1 KANAŁ OC2 (PD7) *******<br />    // ustawienie końcówki OC2 (PD7) sprzętowy PWM jako WYJŚCIE<br />DDRB |= (1&lt;&lt;PB3);<br />    // ustawienia TIMER2 w Fast PWM<br />TCCR2 |= (1&lt;&lt;WGM21)|(1&lt;&lt;WGM20);         // tryb Fast PWM<br />    TCCR2 |= (1&lt;&lt;COM21);                    // clear at BOTTOM<br />    TCCR2 |= (1&lt;&lt;CS20);                     // preskaler = 1<br />    OCR2=0;                               // wygaszenie diody w kanale PWM<br /><br /><br />    //***** KANAŁ GREEN *******<br />    //***** SPRZĘTOWY PWM - 1 KANAŁ OC1A (PD5) *******<br />    // ustawienie końcówki OC1A (PD5) sprzętowy PWM jako WYJŚCIE<br />    DDRB |= (1&lt;&lt;PB1);<br />    // ustawienia TIMER1 w Fast PWM<br />    TCCR1A |= (1&lt;&lt;WGM12)|(1&lt;&lt;WGM10);          // tryb Fast PWM<br />    TCCR1A |= (1&lt;&lt;COM1A1);                    // clear at BOTTOM<br />    TCCR1B |= (1&lt;&lt;CS10);                      // preskaler = 1<br />    OCR1A=0;                                // wygaszenie diody w kanale PWM<br /><br /><br />    //***** KANAŁ RED *******<br />    //***** SPRZĘTOWY PWM - 1 KANAŁ OC1B (PD4) *******<br />    // ustawienie końcówki OC1B (PD4) sprzętowy PWM jako WYJŚCIE<br />    DDRB |= (1&lt;&lt;PB2);<br />    // ustawienia TIMER1 w Fast PWM<br />    TCCR1A |= (1&lt;&lt;WGM12)|(1&lt;&lt;WGM10);                // tryb Fast PWM<br />    TCCR1A |= (1&lt;&lt;COM1B1);                          // clear at BOTTOM<br />    TCCR1B |= (1&lt;&lt;CS10);                            // preskaler = 1<br />    OCR1B=0;                                      // wygaszenie diody w kanale PWM<br /><br /><br />    uint8_t i;// definicja zmiennej i na potrzeby pętli for()<br /><br />   while(1)<br />   {<br /><br />       for(i=0;i&lt;255;i++) // rozjasnianie green<br />       {<br />       OCR2=i;<br />       _delay_ms(5);<br />       }<br />       for(i=255;i;i--)  // sciemnianie green<br />       {<br />       OCR2=i;<br />       _delay_ms(5);<br />       }<br />       for(i=0;i&lt;255;i++) // rozjasnianie red<br />              {<br />       OCR1A=i;<br />              _delay_ms(5);<br />              }<br />              for(i=255;i;i--)  // sciemnianie red<br />              {<br />              OCR1A=i;<br />              _delay_ms(5);<br />              }<br />              for(i=0;i&lt;255;i++) // rozjasnianie blue<br />                     {<br />              OCR1B=i;<br />                     _delay_ms(5);<br />                     }<br />                     for(i=255;i;i--)  // sciemnianie blue<br />                     {<br />                     OCR1B=i;<br />                     _delay_ms(5);<br />                     }<br /><br /><br />   }<br />}[/syntax]<br /><br /><br />No dobra, przerwania są uparte i nie chcą zadziałać, to może spróbuję ugryźć problem od innej strony ... Mianowicie przerwania programowe (systemowe) od timera potrzebuje tak naprawdę do kawałka kodu, który odpowiedzialny jest za funkcje mix, która miesza kolory w 3 niezależnych pętlach. Wynikiem czego jest piękne przejście pomiędzy kolorami ... Kod ten jest wzięty z naszego forum i faktycznie działa efektownie. Teraz pytanie brzmi, czy da się rozwiązać ten problem bez korzystania z timera `systemowego` ?? Przychodzi mi na myśl tylko użycie pętli for() co tworzy nam kod zbyt `liniowy`. Jakieś pomysły? Poniżej wlejam funkcję, którą chcę przerobić.<br /><br /><br />[syntax=c]void mix_channel(void)<br />{<br />while(1)<br />{<br />if (!Timer1)<br />{<br />Timer1 = 255;<br />            sw++;<br />        }<br />        if (sw &gt; 3) sw = 1;<br />        if (sw == 1)<br />        {<br />        if (!Timer2)<br />            {<br />            Timer2 = 1;<br />                if (m&gt;0) m--;<br />                if (n&lt;255) n++;<br />                o = 0;<br />            }<br />        }<br />        if (sw == 2)<br />        {<br />        if (!Timer2)<br />        {<br />        Timer2 = 1;<br />                m = 0;<br />                if (n&gt;0) n--;<br />                if (o&lt;255) o++;<br />             }<br />        }<br />        if (sw == 3)<br />        {<br />        if (!Timer2)<br />            {<br />        Timer2 = 1;<br />                if (m&lt;255) m++;<br />                n = 0;<br />                if (o&gt;0) o--;<br />             }<br />         }<br /><br />        OCR1A = m;<br />        OCR2 = n;<br />        OCR1B = o;<br />     }<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 9 lut 2014, o 14:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zaba]]></name></author>
<updated>2014-02-08T19:59:24+01:00</updated>
<published>2014-02-08T19:59:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=69310#p69310</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=69310#p69310"/>
<title type="html"><![CDATA[Re: Timery Programowe [ATmega 8]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=69310#p69310"><![CDATA[
Witam<br /><br />Niestety @zlata_n wgrałem Twój program do ATmegi8 i<br />niedobre wieści dla Ciebie bo u mnie ten program śmiga aż<br />miło <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />.<br />Jeśli na innym timerze masz taką samą sytuację jak przedtem<br />to na 90% (moim zdaniem oczywiście) uC poszedł<br />na wieczny odpoczynek <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br />i chyba będziesz musiał sprawić sobie nowy <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=1044">Zaba</a> — 8 lut 2014, o 19:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2014-02-08T17:27:10+01:00</updated>
<published>2014-02-08T17:27:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=69293#p69293</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=69293#p69293"/>
<title type="html"><![CDATA[Re: Timery Programowe [ATmega 8]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=69293#p69293"><![CDATA[
Skonfigurowałem Timer1 dla testu i to samo, faktycznie chyba coś nie tak z moją ATmegą ... <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 /><br />// główna funkcja programu main()<br />int main(void)<br />{<br /><br />   //***** PROGRAMOWY PWM - 3 KANAŁY *******<br />   // ustawienie pinów kanałów programowych PWM jako WYJŚCIA<br />  // DDRB |= (1&lt;&lt;PB1)|(1&lt;&lt;PB2)|(1&lt;&lt;PB3);<br />DDRD |= (1&lt;&lt;PD6);<br /><br />   // włączenie diod LED<br />  // PORTB |= (1&lt;&lt;PB1)|(1&lt;&lt;PB2)|(1&lt;&lt;PB3);<br />PORTD &amp;= ~(1&lt;&lt;PD6);<br /><br /><br /><br />   // ustawienia TIMER1 w tryb CTC<br />TCCR1A |= (1&lt;&lt;WGM12);<br />TCCR1B |= (1&lt;&lt;CS10);<br />OCR1A = 200;<br />TIMSK |= (1&lt;&lt;OCIE1A);<br /><br />    sei();                          // odblokowanie globalne przerwań<br /><br />   while(1)<br />   {<br />       PORTD ^= (1&lt;&lt;PD6);   // TEST DEBUGGER<br />       _delay_ms(1000);<br />   }<br />}<br /><br /><br />// ciało procedury obsługi przerwania Compare Match Timera1<br />ISR( TIMER1_COMPA_vect )<br />{<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 8 lut 2014, o 17:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Marcin_G]]></name></author>
<updated>2014-02-08T15:42:14+01:00</updated>
<published>2014-02-08T15:42:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=69273#p69273</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=69273#p69273"/>
<title type="html"><![CDATA[Re: Timery Programowe [ATmega 8]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=69273#p69273"><![CDATA[
Może ją przypiekłeś przy lutowaniu?  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />Próbowałeś skonfigurować TIMER1, też ma tryb CTC, żeby sprawdzić co wtedy się dzieje?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=758">Marcin_G</a> — 8 lut 2014, o 15:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2014-02-08T15:24:52+01:00</updated>
<published>2014-02-08T15:24:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=69269#p69269</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=69269#p69269"/>
<title type="html"><![CDATA[Re: Timery Programowe [ATmega 8]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=69269#p69269"><![CDATA[
no to mam chyba uszkodzoną ATmege bo mi nie działa ... <br />poniżej schemat moje układu:<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/142/2134235abf641d66a48f12b1caf99e51.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/142/2134235abf641d66a48f12b1caf99e51.png" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 8 lut 2014, o 15:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Marcin_G]]></name></author>
<updated>2014-02-07T01:00:44+01:00</updated>
<published>2014-02-07T01:00:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68923#p68923</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68923#p68923"/>
<title type="html"><![CDATA[Re: Timery Programowe [ATmega 8]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68923#p68923"><![CDATA[
<div class="quotetitle">zlata_n napisał(a):</div><div class="quotecontent"><br />...dioda nie mruga ... jeżeli tylko zakomentuje sei() to dioda mruga poprawnie (co 1 sek). Według mnie coś z inicjalizacją przerwania Timer2...? czasy złe? preskaler? podział częstotliwości? Przypomne, że korzystam z ATmegi8 i wewnętrze taktowanie 8MHz.<br /><br />HELP ME ...<br /></div><br /><br />Też testuje ten Twój program na ATmedze8 z wewnętrznym taktowaniem 8MHz, i wszystko działa prawidłowo. Zarówno PWM jak i teraz ta migająca dioda z ostatnio wklejonego kodu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=758">Marcin_G</a> — 7 lut 2014, o 01:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zaba]]></name></author>
<updated>2014-02-06T15:35:20+01:00</updated>
<published>2014-02-06T15:35:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68771#p68771</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68771#p68771"/>
<title type="html"><![CDATA[Re: Timery Programowe [ATmega 8]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68771#p68771"><![CDATA[
Mam jeszcze jednego pomysła jak to mówi Ferdek<br /><br />weź tylko dla testu zmień przerwanie np.<br />na Timer0 overflow <br />ustaw tam wszystko co trzeba <br />zrób pusty wektor tego przerwania i zobacz <br />czy jak puścisz przerwania (sei()) to<br />czy wynik będzie taki sam jak obecnie<br /><br />sprawdzisz chociaż częściowo czy przerwania &quot;żyją&quot;<br />no bo przecież ten Twój ostatni powinien działąć <br /><br />Jeśli to nie pomoże to jeszcze możesz odlutować wszysko<br />co jest zbędne do poprawnej pracy uC i jeszcze raz puścić<br />procka tylko z samym debugerem <br /><br />Wiem dużo roboty ale nie mam innego pomysłu jak to sprawdzić<br />gdzie siedzi przyczyna tej &quot;awarii&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1044">Zaba</a> — 6 lut 2014, o 15:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2014-02-06T15:19:49+01:00</updated>
<published>2014-02-06T15:19:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68766#p68766</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68766#p68766"/>
<title type="html"><![CDATA[Re: Timery Programowe [ATmega 8]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68766#p68766"><![CDATA[
Marcin_G -&gt; wlutowałem diode na pająka, zrobiłem test i to samo... zachwouje się tak samo jak tam 3W RGB na driverach ....<br /><br />Ponieżej kod którym testuje:<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 /><br />// główna funkcja programu main()<br />int main(void)<br />{<br /><br />   //***** PROGRAMOWY PWM - 1 KANAŁ *******<br />   // ustawienie pinów kanałów programowych PWM jako WYJŚCIA<br />   DDRD |= (1&lt;&lt;PD6);<br /><br />   // włączenie debuggera LED<br />   PORTD &amp;= ~(1&lt;&lt;PD6);<br /><br /><br /><br />   // ustawienia TIMER2 w tryb CTC<br />   TCCR2 |= (1&lt;&lt;WGM21);    // tryb  CTC<br />   TCCR2 |= (1&lt;&lt;CS20);     // preskaler = 1<br />   OCR2 = 200;             // dodatkowy podział częsttotliwości przez 200<br />   TIMSK |= (1&lt;&lt;OCIE2);    // zezwolenie na przerwanie CompareMatch<br /><br />    sei();                          // odblokowanie globalne przerwań<br /><br />   while(1)<br />   {<br />       PORTD ^= (1&lt;&lt;PD6);   // TEST DEBUGGER<br />       _delay_ms(1000);<br />   }<br />}<br /><br /><br />// ciało procedury obsługi przerwania Compare Match Timera2<br />ISR( TIMER2_COMP_vect )<br />{<br /><br />}[/syntax]<br /><br />dioda nie mruga ... jeżeli tylko zakomentuje sei() to dioda mruga poprawnie (co 1 sek). Według mnie coś z inicjalizacją przerwania Timer2...? czasy złe? preskaler? podział częstotliwości? Przypomne, że korzystam z ATmegi8 i wewnętrze taktowanie 8MHz.<br /><br />HELP ME ...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 6 lut 2014, o 15:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Marcin_G]]></name></author>
<updated>2014-02-03T23:40:47+01:00</updated>
<published>2014-02-03T23:40:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68310#p68310</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68310#p68310"/>
<title type="html"><![CDATA[Re: Timery Programowe [ATmega 8]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68310#p68310"><![CDATA[
No to kurcze nie mam pomysłu <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> . U mnie ten kod działa zarówno wtedy gdy mam wstawione te warunki co w kodzie podanym kilka postów wcześniej, jak i same delaye. Za każdym razem dioda się rozjaśnia i ściemnia.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 7 minutach ]</span></strong><br /><br />Jeszcze raz przeczytałem Twój pierwszy post i piszesz że używasz też driverów do LED. Może one coś mieszają? Jest opcja żebyś po testował kod na diodzie podłączonej bezpośrednio do procka? Może uda Ci się dolutować jakoś diodę &quot;na pająka&quot;.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=758">Marcin_G</a> — 3 lut 2014, o 23:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zaba]]></name></author>
<updated>2014-02-03T22:19:39+01:00</updated>
<published>2014-02-03T22:19:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68286#p68286</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68286#p68286"/>
<title type="html"><![CDATA[Re: Timery Programowe [ATmega 8]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68286#p68286"><![CDATA[
Normalnie tak mnie to zaaferowało ,że jak wrócę <br />z wygnanie (delegacja) wrzucę ten kod u siebie.<img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Tylko to dopiero pod koniec tygodnia (niestety)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1044">Zaba</a> — 3 lut 2014, o 22:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2014-02-03T22:11:40+01:00</updated>
<published>2014-02-03T22:11:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68285#p68285</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68285#p68285"/>
<title type="html"><![CDATA[Re: Timery Programowe [ATmega 8]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68285#p68285"><![CDATA[
probowałem z włączonym i wyłączonym CKOPT, to samo ... mimo wszystko dzięki za pomoc!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 3 lut 2014, o 22:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zaba]]></name></author>
<updated>2014-02-03T21:42:23+01:00</updated>
<published>2014-02-03T21:42:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68277#p68277</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68277#p68277"/>
<title type="html"><![CDATA[Re: Timery Programowe [ATmega 8]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68277#p68277"><![CDATA[
Może teraz napiszę herezję <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />ale spróbuj tak dla testu ustawić w <br />fuse bitach uproszczonych CKOPT<br /><br />Wiem wiem dotyczy to zewnętrznego taktowania ale może spróbować<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1044">Zaba</a> — 3 lut 2014, o 21:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2014-02-03T18:34:21+01:00</updated>
<published>2014-02-03T18:34:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68218#p68218</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68218#p68218"/>
<title type="html"><![CDATA[Re: Timery Programowe [ATmega 8]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68218#p68218"><![CDATA[
Marcin_G wrzuciłem dokładnie kod który wkleiłeś i dioda cały czas świeci. Mimo tego że jasno mi wytłumaczyłeś gdzie powinny być te delay'e i dlaczego to lampka nie świeci jak powinna. Zapala się w mgnieniu oka i ciągle świeci ...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 3 lut 2014, o 18:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Marcin_G]]></name></author>
<updated>2014-02-02T21:53:40+01:00</updated>
<published>2014-02-02T21:53:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68126#p68126</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68126#p68126"/>
<title type="html"><![CDATA[Re: Timery Programowe [ATmega 8]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68126#p68126"><![CDATA[
Trochę się już pogubiłem, o czym teraz rozprawiamy <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />Generalnie to problemem w kodzie który wkleiłeś w pierwszym poście był brak opóźnienia w wykonywaniu pętli. Co prawda dałeś jednego delaya, ale nie dość że był on poza instrukcjami wykonywanymi w pętli, to właśnie był tylko jeden. Nie było więc innej opcji jak ciągłe świecenie diody. Nawet jakbyś tego delaya umieścił w pierwszej pętli a nie dał byś drugiego w drugiej pętli, to dioda też by się ciągle świeciła.<br />Sprawdziłeś kod który wkleiłem? Działa?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=758">Marcin_G</a> — 2 lut 2014, o 21:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2014-02-02T21:07:26+01:00</updated>
<published>2014-02-02T21:07:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68118#p68118</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68118#p68118"/>
<title type="html"><![CDATA[Re: Timery Programowe [ATmega 8]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68118#p68118"><![CDATA[
Tak, dokładnie tą linie zakomentowałem<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 2 lut 2014, o 21:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2014-02-02T20:47:57+01:00</updated>
<published>2014-02-02T20:47:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68111#p68111</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68111#p68111"/>
<title type="html"><![CDATA[Re: Timery Programowe [ATmega 8]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68111#p68111"><![CDATA[
<div class="quotetitle">zlata_n napisał(a):</div><div class="quotecontent"><br />zakomentowałem pierwszego if i włączyłem sei() i to samo, `debugger` swieci sie cały czas, nie mruga. Dzieje się to samo gdy usunę wszystko z ciała przerwania, więc to nie pomaga. Dopiero gdy zakomentuje sei() dioda `debugger` sobie mruga co 1sek.<br /></div><br />To zakomentowałeś?<br />[syntax=c]if(cnt&gt;=pwm1) PORTB |= (1&lt;&lt;PB1); else PORTB &amp;= ~(1&lt;&lt;PB1);[/syntax]<br />Na pewno?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 2 lut 2014, o 20:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Marcin_G]]></name></author>
<updated>2014-02-02T20:45:43+01:00</updated>
<published>2014-02-02T20:45:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68110#p68110</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68110#p68110"/>
<title type="html"><![CDATA[Re: Timery Programowe [ATmega 8]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68110#p68110"><![CDATA[
<div class="quotetitle">zlata_n napisał(a):</div><div class="quotecontent"><br />Jest to program z bluebooka i `teoretycznie` nie zmieniany powinien działać tak jak to opisuje Mirek w książce. Nie było mowy o  problemie z inicjalizacją tych wartości PWM.<br /></div><br /><br />Piszesz że z Bluebooka?<br />No to niedokładnie przepisałeś.<br />Spróbuj to:<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 />// definicje zmiennych do sterowania 3 kanałami programowych PWM<br />// zmienne typu uint8_t, rozdzielczość 8-bitowa<br />volatile uint8_t pwm1, pwm2, pwm3;<br /><br />// główna funkcja programu main()<br />int main(void)<br />{<br /><br />   //***** PROGRAMOWY PWM - 3 KANAŁY *******<br />   // ustawienie pinów kanałów programowych PWM jako WYJŚCIA<br />   DDRB |= (1&lt;&lt;PB1)|(1&lt;&lt;PB2)|(1&lt;&lt;PB3);<br /><br />   // włączenie diod LED<br />   PORTB |= (1&lt;&lt;PB1)|(1&lt;&lt;PB2)|(1&lt;&lt;PB3);<br /><br />   // wyłączenie diod LED<br />   //PORTB &amp;= ~ ((1&lt;&lt;PB1)|(1&lt;&lt;PB2)|(1&lt;&lt;PB3));<br /><br /><br />   // ustawienia TIMER2 w tryb CTC<br />   TCCR2 |= (1&lt;&lt;WGM21);    // tryb  CTC<br />   TCCR2 |= (1&lt;&lt;CS20);             // preskaler = 1<br />   OCR2 = 200;                             // dodatkowy podział częsttotliwości przez 200<br />   TIMSK |= (1&lt;&lt;OCIE2);    // zezwolenie na przerwanie CompareMatch<br /><br />   sei();                          // odblokowanie globalne przerwań<br />   uint8_t i;                      // definicja zmiennej i na potrzeby pętli for()<br /><br />   while(1)<br />   {<br />      for(i=0;i&lt;255;i++)<br />      {<br />         pwm1=i;<br />         pwm2=i;<br />         pwm3=i;<br />         if (i&gt;10) _delay_ms(3); else _delay_ms(15);<br />      }<br />      for(i=255;i&gt;0;i--)<br />      {<br />         pwm1=i;<br />         pwm2=i;<br />         pwm3=i;<br />         if (i&gt;10) _delay_ms(3); else _delay_ms(15);<br />     }<br />   }<br />}<br /><br /><br />// ciało procedury obsługi przerwania Compare Match Timera2<br />ISR( TIMER2_COMP_vect )<br />{<br />   static uint8_t cnt; // definicja naszego licznika PWM<br /><br />   if(cnt&gt;=pwm1) PORTB |= (1&lt;&lt;PB1); else PORTB &amp;= ~(1&lt;&lt;PB1);<br />   if(cnt&gt;=pwm2) PORTB |= (1&lt;&lt;PB2); else PORTB &amp;= ~(1&lt;&lt;PB2);<br />   if(cnt&gt;=pwm3) PORTB |= (1&lt;&lt;PB3); else PORTB &amp;= ~(1&lt;&lt;PB3);<br />   cnt++;  // zwiększanie licznika o 1<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=758">Marcin_G</a> — 2 lut 2014, o 20:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2014-02-02T20:43:36+01:00</updated>
<published>2014-02-02T20:43:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68108#p68108</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68108#p68108"/>
<title type="html"><![CDATA[Re: Timery Programowe [ATmega 8]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68108#p68108"><![CDATA[
zakomentowałem pierwszego if i włączyłem sei() i to samo, `debugger` swieci sie cały czas, nie mruga. Dzieje się to samo gdy usunę wszystko z ciała przerwania, więc to nie pomaga. Dopiero gdy zakomentuje sei() dioda `debugger` sobie mruga co 1sek.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 2 lut 2014, o 20:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2014-02-02T20:40:39+01:00</updated>
<published>2014-02-02T20:40:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68105#p68105</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68105#p68105"/>
<title type="html"><![CDATA[Re: Timery Programowe [ATmega 8]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68105#p68105"><![CDATA[
<div class="quotetitle">zlata_n napisał(a):</div><div class="quotecontent"><br />no dobrze MirkoT, napisałem też już wcześniej, że nie mam jak zmienić pinu bo jest to gotowa płytka i mogę testować ją tylko na 3 pinach. Tam gdzie mam diode RGB. Docelowo chce uruchomić te przerwania programowe i ciągle nie wiem jak.<br /></div><br />jak mówiłem... nie czytałem całego wątku, a tylko odniosłem się do tego Twoje postu i kodu o niewykonywaniu się pętli głównej po włączeniu przerwań.<br />a skoro nie możesz zmienić pinu to zakomentuj w przerwaniu pierwszego if'a<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 2 lut 2014, o 20:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2014-02-02T20:38:22+01:00</updated>
<published>2014-02-02T20:38:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68103#p68103</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68103#p68103"/>
<title type="html"><![CDATA[Re: Timery Programowe [ATmega 8]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68103#p68103"><![CDATA[
no dobrze MirkoT, napisałem też już wcześniej, że nie mam jak zmienić pinu bo jest to gotowa płytka i mogę testować ją tylko na 3 pinach. Tam gdzie mam diode RGB. Docelowo chce uruchomić te przerwania programowe i ciągle nie wiem jak.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 2 lut 2014, o 20:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2014-02-02T20:36:35+01:00</updated>
<published>2014-02-02T20:36:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68101#p68101</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68101#p68101"/>
<title type="html"><![CDATA[Re: Timery Programowe [ATmega 8]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68101#p68101"><![CDATA[
no napisałeś że dioda debur świeci Ci cały czas<br />Z tego wyciągnąłeś wniosek, że pętla główna Ci się nie wykonuje.<br />a problemem jest pin do którego podłączyłeś tą diodę <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><br />Wybierz inny pin i zobaczysz, że zacznie radośnie zmieniać stan co 1sek<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 2 lut 2014, o 20:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2014-02-02T20:32:55+01:00</updated>
<published>2014-02-02T20:32:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68099#p68099</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68099#p68099"/>
<title type="html"><![CDATA[Re: Timery Programowe [ATmega 8]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68099#p68099"><![CDATA[
<div class="quotetitle">MirkoT napisał(a):</div><div class="quotecontent"><br />przeczytaj ten mój post<br /><!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic5750.html#p68083" >topic5750.html#p68083</a><!-- l --><br /></div><br />no ale nie rozumiem, co mam zmienić, inicjacje mam wrzucić w inne miejsce? czy inicjować inną wartościa?<br />Jest to program z bluebooka i `teoretycznie` nie zmieniany powinien działać tak jak to opisuje Mirek w książce. Nie było mowy o  problemie z inicjalizacją tych wartości PWM.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 2 lut 2014, o 20:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2014-02-02T20:30:07+01:00</updated>
<published>2014-02-02T20:30:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68096#p68096</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68096#p68096"/>
<title type="html"><![CDATA[Re: Timery Programowe [ATmega 8]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5750&amp;p=68096#p68096"><![CDATA[
<div class="quotetitle">zlata_n napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">Marcin_G napisał(a):</div><div class="quotecontent">A jeżeli dobrze policzyłem to licznik tyka co 5ms.<br /></div><br />czyli rozumiem, że musze zmienić szybkość tykania licznika w przerwaniu tak?</div><br />nie, nie o to chodzi.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: kilkunastu sekundach ]</span></strong><br /><br />przeczytaj ten mój post<br /><a href="http://forum.atnel.pl/topic5750.html#p68083"  class="postlink">http://forum.atnel.pl/topic5750.html#p68083</a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 2 lut 2014, o 20:30</p><hr />
]]></content>
</entry>
</feed>