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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-09-14T12:17:46+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=8493&amp;mode</id>
<entry>
<author><name><![CDATA[kudzu]]></name></author>
<updated>2014-09-14T12:17:46+01:00</updated>
<published>2014-09-14T12:17:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95419#p95419</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95419#p95419"/>
<title type="html"><![CDATA[Re: timer, CTC, OCx - &quot;set&quot; (&quot;reset&quot;) zamiast &quot;toggle&quot;?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95419#p95419"><![CDATA[
Problem jest tylko taki, że potrzebuję wysyłać na port dane raz na okres - z częstotliwością 2304000 Hz przy zegarze 18432000 Hz, czyli co 8 taktów zegara:/ Nie wiem czy w ogóle jest to możliwe, a jak rozbuduję działania w przerwaniu, to będzie jeszcze gorzej. A jeżeli przerwanie będzie mi przeszkadzać jeszcze w połowie okresu to już masakra.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3232">kudzu</a> — 14 wrz 2014, o 12:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-09-14T11:49:33+01:00</updated>
<published>2014-09-14T11:49:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95411#p95411</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95411#p95411"/>
<title type="html"><![CDATA[Re: timer, CTC, OCx - &quot;set&quot; (&quot;reset&quot;) zamiast &quot;toggle&quot;?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95411#p95411"><![CDATA[
<div class="quotetitle">kudzu napisał(a):</div><div class="quotecontent"><br />to czy mogę w jakiś prosty, sprzętowy sposób wymusić, żeby przerwanie od porównania występowało co drugi raz<br /></div><br /><br />No jak ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> co drugi raz ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ... sprzętowo występuje przy porównaniu więc no nie przekombinujesz nic tutaj<br /><br />ale co za problem sobie zrobić to programowo ? czyli sprawdzać chociażby stan inkrementowanej zmiennej w każdym przerwaniu i reagować TYLKO co drugi raz<br /><br />if !((zmienna++)%2) ) .... wykonaj procedurę przerwania<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 14 wrz 2014, o 11:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kudzu]]></name></author>
<updated>2014-09-14T10:37:14+01:00</updated>
<published>2014-09-14T10:37:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95408#p95408</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95408#p95408"/>
<title type="html"><![CDATA[Re: timer, CTC, OCx - &quot;set&quot; (&quot;reset&quot;) zamiast &quot;toggle&quot;?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95408#p95408"><![CDATA[
Ok, dziękuję. Wyjaśniło mi się w takim razie:)<br />To skoro już wiadomo, że timer &quot;togluje&quot; sobie pinem OCx, to czy mogę w jakiś prosty, sprzętowy sposób wymusić, żeby przerwanie od porównania występowało co drugi raz, czyli de facto raz na okres? Bo normalnie przy &quot;toggle&quot; występuje 2x w okresie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3232">kudzu</a> — 14 wrz 2014, o 10:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-09-14T07:01:00+01:00</updated>
<published>2014-09-14T07:01:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95390#p95390</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95390#p95390"/>
<title type="html"><![CDATA[Re: timer, CTC, OCx - &quot;set&quot; (&quot;reset&quot;) zamiast &quot;toggle&quot;?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95390#p95390"><![CDATA[
Kurczę no i wprowadziłem cię w błąd - PRZEPRASZAM - wczoraj wieczorem już nie myślałem<br /><br />oczywiście, że w CTC timer zlicza do wartości OCR i się zeruje - wiesz - ja nie wiem czemu na początku jakoś ubzdurałem sobie że mówimy o PWM a nie CTC ... - przepraszam <br /><br />w takim razie OD POCZĄTKU - twoje pytanie brzmiało:<br /><br /><div class="quotetitle">kudzu napisał(a):</div><div class="quotecontent"><br />Ok, to zadam inne pytanie: w jaki sposób zmienić stan pinu OCnx? Czy działanie na rejestrze PORT przynosi skutek? Przykładowo w ATmega1284 wyjście OC0A jest na pinie PB3. Czy w trakcie działania Timer0 w trybie CTC z włączonym Output Compare mogę zmieniać stan tego pinu rejestrem PORTB? Jeżeli przerwanie od porównania ustawi mi OC0A w stan wysoki, to mogę go programowo wyzerować?<br /></div><br /><br />TAK MOŻESZ zmienić o ile bity COM01 COM00 są wyzerowane. Ale jeśli nie są tylko np jest tryb TOGGLE to wtedy TY nie możesz panować nad pinem OCx bo jego stan zmienia timer (togluje sobie nim) ... i rzeczywiście za pomocą ustawienia OCRx można sobie w jakimś zakresie regulować częstotliwość<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 14 wrz 2014, o 07:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kudzu]]></name></author>
<updated>2014-09-13T23:36:55+01:00</updated>
<published>2014-09-13T23:36:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95385#p95385</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95385#p95385"/>
<title type="html"><![CDATA[Re: timer, CTC, OCx - &quot;set&quot; (&quot;reset&quot;) zamiast &quot;toggle&quot;?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95385#p95385"><![CDATA[
To już całkiem zgłupiałem. Myślałem, że rozumiem tryb CTC:/<br />W dokumentacji piszą tak:<br />&quot;In CTC mode the counter is cleared to zero when the counter value (TCNT0) matches the OCR0A.&quot;<br />Zrozumiałem z tego, że licznik w CTC nie liczy do końca, czyli 0xFF, ale do OCRnx. Dzięki temu można regulować częstotliwość...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3232">kudzu</a> — 13 wrz 2014, o 23:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-09-13T23:26:57+01:00</updated>
<published>2014-09-13T23:26:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95381#p95381</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95381#p95381"/>
<title type="html"><![CDATA[Re: timer, CTC, OCx - &quot;set&quot; (&quot;reset&quot;) zamiast &quot;toggle&quot;?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95381#p95381"><![CDATA[
Ja mówię o CTC a porównanie to wcale nie koniec. Porównanie to porównanie ... a koniec to wtedy gdy timer dobiegnie do końca czyli do 255 albo 65535 <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 13 wrz 2014, o 23:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kudzu]]></name></author>
<updated>2014-09-13T23:22:20+01:00</updated>
<published>2014-09-13T23:22:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95379#p95379</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95379#p95379"/>
<title type="html"><![CDATA[Re: timer, CTC, OCx - &quot;set&quot; (&quot;reset&quot;) zamiast &quot;toggle&quot;?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95379#p95379"><![CDATA[
Ale czy obaj myślimy o CTC? Tutaj porównanie to tenże koniec.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3232">kudzu</a> — 13 wrz 2014, o 23:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-09-13T23:17:50+01:00</updated>
<published>2014-09-13T23:17:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95376#p95376</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95376#p95376"/>
<title type="html"><![CDATA[Re: timer, CTC, OCx - &quot;set&quot; (&quot;reset&quot;) zamiast &quot;toggle&quot;?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95376#p95376"><![CDATA[
<div class="quotetitle">kudzu napisał(a):</div><div class="quotecontent"><br />Nie kumam...<br /></div><br /><br />no tak ... bo, gdy timer doliczy do końca to znowu zmieni stan. Po to aby znowu mógł się zmienić gdy dojdzie do porównania. Jeszcze raz ci mówię nie ma tu żadnych zdarzeń ani nic wspólnego z przerwaniami rozumiesz? ... To działa niezależnie i sprzętowo - dzięki czemu można np szybko ustawić sobie generowanie nośnej np do pilotów podczerwieni 36kHz ....<br /><br />Więc postaraj się to najpierw zrozumieć i nie mieszaj sobie w głowie na razie z przerwaniami. Bo przerwania jeszcze raz podpowiadam działają NIEZALEŻNIE od modułu sprzętowego generowania przebiegu na OCxn<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 13 wrz 2014, o 23:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kudzu]]></name></author>
<updated>2014-09-13T22:46:11+01:00</updated>
<published>2014-09-13T22:46:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95370#p95370</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95370#p95370"/>
<title type="html"><![CDATA[Re: timer, CTC, OCx - &quot;set&quot; (&quot;reset&quot;) zamiast &quot;toggle&quot;?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95370#p95370"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">kudzu napisał(a):</div><div class="quotecontent">Jeżeli timer raz ustawi stan wysoki na OCnx, to co go później zmieni?<br /></div><br /><br />jak to co ? timer panie ... timer<br /></div><br /><br />Si si, timer, jeżeli bity COMnx mam ustawione na &quot;toggle&quot; - wtedy każde zdarzenie porównania zmieni stan OCnx na przeciwny - zrozumiałe. A co, jeśli COMnx ustawię na &quot;set&quot;? Pierwsze zdarzenie porównania zmieni stan OCnx na wysoki, a następne? Wynika z tego, że też na wysoki. Nie kumam...<br /><br />A co do przerwania, to ma ono tyle do tego, że chcę aby pojawiało się tylko przy zboczu narastającym (lub opadającym), a nie przy każdej zmianie stanu OCnx.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3232">kudzu</a> — 13 wrz 2014, o 22:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-09-13T22:18:31+01:00</updated>
<published>2014-09-13T22:18:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95366#p95366</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95366#p95366"/>
<title type="html"><![CDATA[Re: timer, CTC, OCx - &quot;set&quot; (&quot;reset&quot;) zamiast &quot;toggle&quot;?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95366#p95366"><![CDATA[
<div class="quotetitle">kudzu napisał(a):</div><div class="quotecontent"><br />Jeżeli timer raz ustawi stan wysoki na OCnx, to co go później zmieni?<br /></div><br /><br />jak to co ? timer panie ... timer<br /><br />ja nie za bardzo rozumiem o co tobie chodzi ...<br /><br />tyb CTC w połączeniu z COM0x pozwala przejąć sterowanie nad wyjściem OCnx i generować na nim przebieg prostokątny ... nie ma to nic wspólnego z przerwaniami bo te mogą żyć sobie własnym odrębnym życiem<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 13 wrz 2014, o 22:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kudzu]]></name></author>
<updated>2014-09-13T22:14:29+01:00</updated>
<published>2014-09-13T22:14:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95364#p95364</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95364#p95364"/>
<title type="html"><![CDATA[Re: timer, CTC, OCx - &quot;set&quot; (&quot;reset&quot;) zamiast &quot;toggle&quot;?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95364#p95364"><![CDATA[
To po co w takim razie w timerach możliwość konfigurowania Compare Match Output na &quot;Set OCnx on Compare Match&quot; i &quot;Clear OCnx on Compare Match&quot;? Przerwań od timerów nie używa się raczej jednorazowo, a cyklicznie. Jeżeli timer raz ustawi stan wysoki na OCnx, to co go później zmieni?<br />To może operując flagami w rejestrze TIFRn mogę coś zdziałać?<br />Cały czas dążę do tego, żeby generując przebieg prostokątny na wyjściu OCnx przerwanie występowało tylko raz na okres.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3232">kudzu</a> — 13 wrz 2014, o 22:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-09-13T21:28:51+01:00</updated>
<published>2014-09-13T21:28:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95360#p95360</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95360#p95360"/>
<title type="html"><![CDATA[Re: timer, CTC, OCx - &quot;set&quot; (&quot;reset&quot;) zamiast &quot;toggle&quot;?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95360#p95360"><![CDATA[
<div class="quotetitle">kudzu napisał(a):</div><div class="quotecontent"><br />Czy w trakcie działania Timer0 w trybie CTC z włączonym Output Compare mogę zmieniać stan tego pinu rejestrem PORTB?<br /></div><br /><br />Nie możesz jeśli ustawisz bity COM0A0 itp ... bo one zmieniają działanie portu ale jeśli wyłączysz wyjście tymi bitami to już możesz zmieniać stan pinu za pomocą PORTx<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 13 wrz 2014, o 21:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kudzu]]></name></author>
<updated>2014-09-13T21:10:24+01:00</updated>
<published>2014-09-13T21:10:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95357#p95357</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95357#p95357"/>
<title type="html"><![CDATA[Re: timer, CTC, OCx - &quot;set&quot; (&quot;reset&quot;) zamiast &quot;toggle&quot;?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95357#p95357"><![CDATA[
Ok, to zadam inne pytanie: w jaki sposób zmienić stan pinu OCnx? Czy działanie na rejestrze PORT przynosi skutek? Przykładowo w ATmega1284 wyjście OC0A jest na pinie PB3. Czy w trakcie działania Timer0 w trybie CTC z włączonym Output Compare mogę zmieniać stan tego pinu rejestrem PORTB? Jeżeli przerwanie od porównania ustawi mi OC0A w stan wysoki, to mogę go programowo wyzerować?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3232">kudzu</a> — 13 wrz 2014, o 21:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kudzu]]></name></author>
<updated>2014-09-12T14:14:32+01:00</updated>
<published>2014-09-12T14:14:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95231#p95231</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95231#p95231"/>
<title type="html"><![CDATA[timer, CTC, OCx - &quot;set&quot; (&quot;reset&quot;) zamiast &quot;toggle&quot;?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8493&amp;p=95231#p95231"><![CDATA[
Chcę generować na wyjściu OCx sygnał prostokątny, jednocześnie w przerwaniu od porównania wysyłając na port odpowiednie dane, raz na okres. Jeżeli w trybie CTC ustawię &quot;toggle&quot; OCx, jasne jest dla mnie, że chcąc uzyskać częstotliwość X, muszę skonfigurować timer na 2*X. Ale przez to znów przerwanie od porównania pojawia mi się dwa razy w okresie. Czy w takim razie mogę OCx ustawić na &quot;set&quot; i dodatkowo w przerwaniu zerować pin portu z OCx? Oczywiście timer konfiguruję wtedy na częstotliwość X, a nie, jak przedtem, 2*X. Równie dobrze oczywiście mogę zrobić odwrotnie (&quot;reset&quot; i ustawianie pinu).<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3232">kudzu</a> — 12 wrz 2014, o 14:14</p><hr />
]]></content>
</entry>
</feed>