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

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

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=1512&amp;mode</id>
<entry>
<author><name><![CDATA[Tom277]]></name></author>
<updated>2012-09-08T21:31:19+01:00</updated>
<published>2012-09-08T21:31:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1512&amp;p=14691#p14691</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1512&amp;p=14691#p14691"/>
<title type="html"><![CDATA[Re: Zmienna z przerwania Timer0]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1512&amp;p=14691#p14691"><![CDATA[
Bardzo dziękuję za za błyskawiczną odpowiedź. Już się douczam. <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=548">Tom277</a> — 8 wrz 2012, o 21:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Piotrek_P]]></name></author>
<updated>2012-09-08T21:17:05+01:00</updated>
<published>2012-09-08T21:17:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1512&amp;p=14689#p14689</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1512&amp;p=14689#p14689"/>
<title type="html"><![CDATA[Re: Zmienna z przerwania Timer0]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1512&amp;p=14689#p14689"><![CDATA[
Poczytaj o specyfikatorze &quot;volatile&quot; np tu:<br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2011/08/test.html" >http://mirekk36.blogspot.com/2011/08/test.html</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=290">Piotrek_P</a> — 8 wrz 2012, o 21:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Tom277]]></name></author>
<updated>2012-09-08T21:08:19+01:00</updated>
<published>2012-09-08T21:08:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1512&amp;p=14688#p14688</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1512&amp;p=14688#p14688"/>
<title type="html"><![CDATA[Zmienna z przerwania Timer0]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1512&amp;p=14688#p14688"><![CDATA[
Witam<br />Proszę o podpowiedź. Dlaczego nie działa mi poniższy kod? Z założenia miała się zwiększać zmienna &quot;Licznik&quot; w przerwaniu od Timera. Wspomniana zmienna porównywana jest ze stałą wartością np 80 w pętli i na podstawie porównania podejmowana jest decyzja czy diodę LED włączyć czy nie. Niestety w rzeczywistości jest tak, że to nie działa. Dopiero wyłączenie funkcji optymalizacji w ustawieniach Eclips-a umożliwia założone działanie programu. Sprawdzam to za pomocą oscyloskopu, zmiana wartości w porównaniu zmienia wypełnienie przebiegu na diodzie. Dlaczego tak jest? <br /><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 LEDR (1&lt;&lt;PB2) //definicja pinu do którego podłączona jest dioda RED<br />#define LEDR_OFF PORTB &amp;= ~LEDR //makrodefinicja -załączenia diody<br />#define LEDR_ON PORTB |= LEDR //makrodefinicja wyłączenia diody<br />#define LEDR_TOG PORTB ^= LEDR //makrodefinicja zmiany stanu portu diody<br /><br />uint8_t Licznik;<br /><br />int main(void)<br />{<br /><br />DDRB |= LEDR | LEDG |LEDB | LEDK; //porty jako wyjcie<br />PORTB &amp;= ~(LEDR | LEDG |LEDB | LEDK); //porty w stanie 0<br /><br />     TCCR0A |= (1&lt;&lt;WGM01); // tryb CTC<br />     TCCR0B |= (1&lt;&lt;CS00); // preskaler = 1<br />      OCR0A = 250; // dodatkowy podział częsttotliwości<br />     TIMSK0 |= (1&lt;&lt;OCIE0A); // zezwolenie na przerwanie CompareMatch<br /><br />sei();<br />     while(1)<br />     {<br />     if ( Licznik &gt;= 80 )<br />     {<br />     LEDR_ON;<br />     }<br />     else<br />     {<br />     LEDR_OFF;<br />     }<br />    }<br />}<br /><br />//*****************wektor przerwania************************<br />ISR(TIM0_COMPA_vect)<br />{<br />Licznik++;<br />}<br />[/syntax]<br /><br /><span style="color: #FF0000">EDIT: w przyszłości proszę używać znaczników syntax=c a nie code</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=548">Tom277</a> — 8 wrz 2012, o 21:08</p><hr />
]]></content>
</entry>
</feed>