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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-09-30T17:08:06+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=7228&amp;mode</id>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2017-09-30T17:08:06+01:00</updated>
<published>2017-09-30T17:08:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7228&amp;p=196122#p196122</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7228&amp;p=196122#p196122"/>
<title type="html"><![CDATA[Re: atmega328 - timery]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7228&amp;p=196122#p196122"><![CDATA[
odpowiedź usunąłem.   <img src="https://forum.atnel.pl/images/smilies/icon_neutral.gif" alt=":|" title="Średnio zadowolony" />  <br />Należy zakładać nowe wątki z pytaniami.<br />NIE DOPISUJEMY POSTÓW DO WĄTKÓW KOLEGÓW.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11549">Daro69</a> — 30 wrz 2017, o 17:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[robo1973]]></name></author>
<updated>2017-09-30T08:40:42+01:00</updated>
<published>2017-09-30T08:40:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7228&amp;p=196096#p196096</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7228&amp;p=196096#p196096"/>
<title type="html"><![CDATA[Re: atmega328 - timery]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7228&amp;p=196096#p196096"><![CDATA[
<div class="codetitle"><b>Code:</b></div><div class="codecontent">DDRB |= (1 &lt;&lt; DDB1)|(1 &lt;&lt; DDB2);  // PB1 and PB2 wyjscie PWM <br /><br />TCCR1A|=(1&lt;&lt;COM1A1)|(1&lt;&lt;COM1B1)|(1&lt;&lt;WGM11);        //NON Inverted PWM<br />TCCR1B|=(1&lt;&lt;WGM13)|(1&lt;&lt;WGM12)|(1&lt;&lt;CS11)|(1&lt;&lt;CS10); //PRESCALER=64 MODE 14(FAST PWM)<br /><br />ICR1=2499;  //fPWM=50Hz (Period = 20ms Standard).<br />   <br />      OCR1A=pwm1;<br />      OCR1B=pwm2;<br /></div><br /><br />czy mogę jednocześnie generować rożnego PWM na kanala ai b Czy muszę zrobić programowy przełącznik raz kanał z a raz kanał b ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6554">robo1973</a> — 30 wrz 2017, o 08:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sq8dsr]]></name></author>
<updated>2014-05-29T00:53:00+01:00</updated>
<published>2014-05-29T00:53:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7228&amp;p=82701#p82701</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7228&amp;p=82701#p82701"/>
<title type="html"><![CDATA[Re: atmega328 - timery]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7228&amp;p=82701#p82701"><![CDATA[
Rejestry są nazywane w sposób dość logiczny<br />TCCRxA, TCCRxB, TCCRxC - gdzie x to numer timera. W 48/88/168/328 są trzy timery odpowiednio:<br />0 - 8 bitowy<br />1 - 16 bitowy<br />2 - 8 bitowy<br /><br />Tak samo jest z rejestrami do krórych wpisuje się wartość do porówniania:<br />OCRxA, OCRxB - gdzie x to numer timera<br /><br />W tej linii procesorów wszystkie timery mają po dwa wyjścia:<br />OC0A i OC0B dla timera0<br />OC1A i OC1B dla timera1<br />OC2a i OC2B dla timera2<br />Timer1 ma jeszcze wejście ICP<br /><br />Wszystkie timery mogą pracować w trybach NORMAL, CTC, PWM i PWM Phasecorrect. Timer1 dysponuje większą ilością trybów, związaną z możliwymi do wyboru rozdzielczościami PWM oraz trybem ICP<br />Timer2 poziada dodatkowe funkcje zwiazane z trybem asynchronicznym.<br /><br />Tryb CTC można uzyskać na 2 wyjsciach danego timera np. timer0 (OC0A i OC0B) i otrzymać od nich dwa oddzielne przebiegi prostokątne i / lub oddzielne przerwania, pod warunkiem że wartość OC0B będzie MNIEJSZA niż OC0A.<br /><br />To czy w wyniku pracy timera w trybie CTC uzyskujemy na jego wyjściu / wyjściach przebieg prostokątny czy nie zależy od ustawienia bitów w rejestrze. W przypadku Timera0 jest to rejestr TCCR0A.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1589">sq8dsr</a> — 29 maja 2014, o 00:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Nefarious19]]></name></author>
<updated>2014-05-28T23:37:52+01:00</updated>
<published>2014-05-28T23:37:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7228&amp;p=82695#p82695</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7228&amp;p=82695#p82695"/>
<title type="html"><![CDATA[Re: atmega328 - timery]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7228&amp;p=82695#p82695"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Raczej nie można wybrać dowolnie rejestru porównującego (OCR0A/OCR0B)<br /></div><br /><br />chyba można ale nigdy tego nie robiłem, zawsze wybierałem A. ale CO Ci zależy spróbowac:)? najwyżej nie zadziała:)<br /><br /><div class="quotetitle">Mellanogaster napisał(a):</div><div class="quotecontent"><br />I domyślam się, że Jeśli wybiorę rejestr porównawczy A to wektor przerwań również będzie opatrzony sufiksem A.<br /></div><br /><br />Dokłdnie tak będzie jak myślisz:) OCIE0A oznacza On_Compare_Interrupt_Enable_timer0_rejestrA:) czyli włacz przerwanie od porównania z rejestrem OCR0A:)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2500">Nefarious19</a> — 28 maja 2014, o 23:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Mellanogaster]]></name></author>
<updated>2014-05-28T22:54:52+01:00</updated>
<published>2014-05-28T22:54:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7228&amp;p=82693#p82693</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7228&amp;p=82693#p82693"/>
<title type="html"><![CDATA[Re: atmega328 - timery]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7228&amp;p=82693#p82693"><![CDATA[
O! Super, super!<br />I domyślam się, że Jeśli wybiorę rejestr porównawczy A to wektor przerwań również będzie opatrzony sufiksem A.<br /><br />Coś już zaczynam kapować! (chyba)<br />Raczej nie można wybrać dowolnie rejestru porównującego (OCR0A/OCR0B)<br /><br />- powinien być OCR0A - TOP (tabela 14.8)<br /><br />Czy się mylę?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2911">Mellanogaster</a> — 28 maja 2014, o 22:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Nefarious19]]></name></author>
<updated>2014-05-28T22:18:03+01:00</updated>
<published>2014-05-28T22:18:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7228&amp;p=82690#p82690</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7228&amp;p=82690#p82690"/>
<title type="html"><![CDATA[Re: atmega328 - timery]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7228&amp;p=82690#p82690"><![CDATA[
Timer 0 ma dwa rejetry controlne TCCR0A i TCCR0B które razem tworzą jakby jedno 16 bitowe słowo, czyli to jest taki jakby jeden rejstr kofiduracyjny 16 bitowy podzielony na dwie części. (JA TAK SOBIE TO TŁUMACZE).<br /><br />Chcesz Tryb CTC?<br /><br />Patrzysz na tabele 15-8. w nocie ATmegi328 i co tam widać? Aby ustawić Timer w tryb CTC trzeba w obu rejestrach (TCCR0A i TCCR0B) ustawić odpowiednie bity WGM na odpowiednie wartości czyli:<br /><br />[syntax=c]//ustawiamy odpowiednie bity w rejestrze A<br />TCCR0A |= (1&lt;&lt;WGM01);    <br />TCCR0A &amp;= ~(1&lt;&lt;WGM00);<br />//ustawiamy odpowiedni bity w rejestrze B<br />TCCR0B &amp;= ~(1&lt;&lt;WGM02);[/syntax]<br /><br />Co prawda nie trzeba ustawiać WGM00 i WGM02 na zero bo po restarcie są tak domyślnie ustawione ale wpisałem Ci do dla zobrazowania.<br /><br />Teraz pora na preskaler! <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> służą do tego bity w rejestrze B oznaczone CS00-CS02, ustawmy więc preskaler na 1024<br /><br />[syntax=c]//ustawmy preskaler na 1024<br />TCCR0B |= (1&lt;&lt;CS00) | (1&lt;&lt;CS02);<br />TCCR0B &amp;= ~(1&lt;&lt;CS01);[/syntax]<br /><br /><br /><br />teraz musimy zrobić coś żeby zgłaszało nam się przerwanie gdy timer nam zliczy do wartości jaka znajduję się w rejestrze porównawczym OCR0A lub OCR0B, gdyż są dwa takie rejestry. my wybieramy sobie rejestr OCR0A, gdy timer zliczy do tej wartości którą wpiszesz do rejestru zgłosi przerwanie a więc trzeba właczyć to przerwanie<br /><br />[syntax=c]TIMSK |= (1&lt;&lt;OCIE0A);[/syntax]<br /><br />i proszę bardzo, mamy skonfigurowany timer0 w tryb CTC. teraz wystarczy do rejestru OCR0A wpisać jakąś wartość od 0 - 255 i zgłaszał będzie przerwanie gdy zliczy do tej wartości:) musisz funkcją <br /><br />[syntax=c]sei();[/syntax]<br /><br />odblokować przerwanie i zaimplementować w programie obsługę przerwania:)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2500">Nefarious19</a> — 28 maja 2014, o 22:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kaka0204]]></name></author>
<updated>2014-05-28T21:44:31+01:00</updated>
<published>2014-05-28T21:44:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7228&amp;p=82688#p82688</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7228&amp;p=82688#p82688"/>
<title type="html"><![CDATA[Re: atmega328 - timery]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7228&amp;p=82688#p82688"><![CDATA[
<div class="quotetitle">Mellanogaster napisał(a):</div><div class="quotecontent"><br />ja potrzebuję uruchomić tylko najprostszy timer CTC<br /></div><br />CTC to nie jest timer. To jest tryb,w którym pracuje timer. <br /><br /><div class="quotetitle">Mellanogaster napisał(a):</div><div class="quotecontent"><br />Otóż pojawiają się tam jakieś TCCR0A i TCCR0B<br /></div><br />Są to rejestry, w których wybiera się jaki ma być np. tryb timera (np.CTC) albo prescaler.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=889">kaka0204</a> — 28 maja 2014, o 21:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Mellanogaster]]></name></author>
<updated>2014-05-28T19:30:48+01:00</updated>
<published>2014-05-28T19:30:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7228&amp;p=82658#p82658</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7228&amp;p=82658#p82658"/>
<title type="html"><![CDATA[atmega328 - timery]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7228&amp;p=82658#p82658"><![CDATA[
Witam!<br /><br />Troszkę się nie mogę połapać w rozdziale o timerach w nocie katalogowej dla rodziny atmega48/88/168/328. Otóż pojawiają się tam jakieś TCCR0A i TCCR0B - ja potrzebuję uruchomić tylko najprostszy timer CTC  <img src="https://forum.atnel.pl/images/smilies/icon_rolleyes.gif" alt=":roll:" title="Udaje, że to nie on" />  ale chętnie bym się dowiedział jakie możliwości posiada ta rodzinka w zakresie timerów. Jeśli ktoś mógłby mi to wyjaśnić, naprowadzić, jakiegoś linka przytoczyć byłbym rad!  <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=2911">Mellanogaster</a> — 28 maja 2014, o 19:30</p><hr />
]]></content>
</entry>
</feed>