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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-05-02T02:05:30+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=6944&amp;mode</id>
<entry>
<author><name><![CDATA[sq8dsr]]></name></author>
<updated>2014-05-02T02:05:30+01:00</updated>
<published>2014-05-02T02:05:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6944&amp;p=79814#p79814</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6944&amp;p=79814#p79814"/>
<title type="html"><![CDATA[Re: Tryb CTC TIMERA0]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6944&amp;p=79814#p79814"><![CDATA[
Wystarczy tylko zamienić procedury przerwań miejscami <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />Fajnie że działa. Powodzenia.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1589">sq8dsr</a> — 2 maja 2014, o 02:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[#99]]></name></author>
<updated>2014-05-02T02:03:52+01:00</updated>
<published>2014-05-02T02:03:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6944&amp;p=79813#p79813</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6944&amp;p=79813#p79813"/>
<title type="html"><![CDATA[Re: Tryb CTC TIMERA0]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6944&amp;p=79813#p79813"><![CDATA[
Działa <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> Dziękuję bardzo za pomoc.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4052">#99</a> — 2 maja 2014, o 02:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sq8dsr]]></name></author>
<updated>2014-05-02T01:53:11+01:00</updated>
<published>2014-05-02T01:53:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6944&amp;p=79812#p79812</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6944&amp;p=79812#p79812"/>
<title type="html"><![CDATA[Re: Tryb CTC TIMERA0]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6944&amp;p=79812#p79812"><![CDATA[
Nigdy tak nie robiłem. Ale z tego co widzę w nocie to rejestr OC0RA zawiera wartość TOP. Po jej osiągnięciu zawartość TCNT0 jest zerowana. Więc jeśli OCR0B &gt; OCR0A (tak jak u Ciebie) to przerwanie od bitu OCIE0B nie ma szansy się wykonać bo ten bit nigdy nie zostanie ustawiony ponieważ po osiągnięciu wartości OCR0A licznik zostanie wyzerowany i nigdy nie osiągnie wartości OCR0B.<br />Dlatego myślę, w rejestrze OCR0B musi znajdować się mniejsza wartość.<br />OCR0B &lt; OCR0A.<br /><br />Spróbuj... <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=1589">sq8dsr</a> — 2 maja 2014, o 01:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[#99]]></name></author>
<updated>2014-05-02T01:17:56+01:00</updated>
<published>2014-05-02T01:17:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6944&amp;p=79810#p79810</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6944&amp;p=79810#p79810"/>
<title type="html"><![CDATA[Tryb CTC TIMERA0]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6944&amp;p=79810#p79810"><![CDATA[
Witam.<br />Chcę skorzystać z trybu CTC timera0 do obsługi dwóch różnych przerwań na uC atmega328P. Posiada on dwa 8-bitowe rejestry porównania: OCR0A oraz OCR0B. Chciałbym aby pierwsze przerwanie uruchomiło się gdy rejestr TCNT0 == OCR0A, definiuję je w następujący sposób:<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">ISR(TIMER0_COMPA_vect)</div><br />tutaj wszystko działa bez zarzutów, natomiast drugie przerwanie chciałbym uruchomić gdy rejestr TCNT0 == OCR0B i jest ono zdefiniowane:<div class="codetitle"><b>Code:</b></div><div class="codecontent">ISR(TIMER0_COMPB_vect)</div><br />jednak to już nie działa. W przypadku gdy wrzucę kod drugiego przerwania do pierwszego to program działa poprawnie z czego wnioskuję że sama procedura jest dobrze napisana. I tutaj moje pytanie czy mogę jednocześnie (nie do końca jednocześnie bo OCR0A nie jest równe OCR0B w moim przypadku) rejestr TCNT0 porównywać z OCR0A i OCR0B? Poniżej inicjalizacja timera:<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">TCCR0A |= (1&lt;&lt;WGM01);<br />TCCR0B |= (1&lt;&lt;CS02);<br />OCR0A = 234;<br />OCR0B = 250;<br />TIMSK0 |= (1&lt;&lt;OCIE0A) | (1&lt;&lt;OCIE0B);<br /></div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4052">#99</a> — 2 maja 2014, o 01:17</p><hr />
]]></content>
</entry>
</feed>