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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2018-04-02T06:51:34+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=20537&amp;mode</id>
<entry>
<author><name><![CDATA[JarekB]]></name></author>
<updated>2018-04-02T06:51:34+01:00</updated>
<published>2018-04-02T06:51:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20537&amp;p=206385#p206385</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20537&amp;p=206385#p206385"/>
<title type="html"><![CDATA[Re: Timer na Atmedze 2560]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20537&amp;p=206385#p206385"><![CDATA[
W AVR Timer kalkulator wpisałem Twoje dane <br />czyli <br />F_CPU 16 000 000 Hz <br />pożądane ms 20. <br />Wynika z tego że dla trybu CTC należy ustawić <br />OCR 4999<br />preskaler 64<br />No i jedziemy dalej:<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 />volatile uint8_t flaga_zrobmy_cos = 0; <br /><br />int main( void ) {<br />      <br />//    TCCR5A  |= ( 1 &lt;&lt; WGM51 ) | ( 1 &lt;&lt; WGM50 );         bity odpowiedzialne za tryb pracy Timera nr 5<br />//    TCCR5B  |= ( 1 &lt;&lt; WGM52 ) | ( 1 &lt;&lt; WGM53 );         bity odpowiedzialne za tryb pracy Timera nr 5<br />      TCCR5B  |= ( 1 &lt;&lt; WGM52 );                       // Ustawiamy tryb CTC &quot;4&quot; dla timera nr 5 strona 160 doku<br /> <br />//    TCCR5B   |= (1 &lt;&lt; CS52) | (1 &lt;&lt; CS51)|(1 &lt;&lt; CS50); bity odpowiedzialne za preskaler<br />      TCCR5B   |=  (1 &lt;&lt; CS51)|(1 &lt;&lt; CS50);            // Ustawiamy preskaler 64  strona 162 doku <br /> <br />      OCR5A = 4999;                                    // Ustawiamy wartość zgodnie z kalkulatorem<br />      TIMSK5 |= (1&lt;&lt; OCIE5A);                          // Ustawiamy żądanie przerwania w momencie gdy TCNT5 zróna się z OCR5A strona 166<br />      sei();                                           // Odblokowujemy przerwania<br /><br />    while ( 1 ) {<br />    }  // Koniec while<br />}      // koniec main<br /><br />//****  Obsługa przerwania           <br />ISR (TIMER5_COMPA_vect){<br />                           // No i tu co 20 ms będziesz mógł zrobić to na co masz ochotę  <br />   flaga_zrobmy_cos = 1;   // Lub postawić flagę.<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18188">JarekB</a> — 2 kwi 2018, o 06:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2018-04-01T17:15:06+01:00</updated>
<published>2018-04-01T17:15:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20537&amp;p=206379#p206379</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20537&amp;p=206379#p206379"/>
<title type="html"><![CDATA[Re: Timer na Atmedze 2560]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20537&amp;p=206379#p206379"><![CDATA[
witam,<br /><div class="quotetitle">Jeziorek74 napisał(a):</div><div class="quotecontent"><br />ale po co w takim razie A, B, C ?<br /></div><br />timer5 posiada trzy wyjścia sprzętowe.<br />OC5A(PL3), OC5B(PL4) i OC5C(PL5),<br />wpływ na nie mają rejestry porównania- chronologicznie  : OCR5A, OCR5B, OCR5C.<br />a jak ustawić co i co po kolei załączyć by uzyskać oczekiwaną częstotliwość, to zerknij w BB na timery sprzętowe opisane np w rozdziale MULTIPLEXOWANIE LED, przerwania.(u mnie na stronie 182)<br />ustawiasz tryb pracy,<br />preskaler,<br />ten właśnie OCR... dla konkretnego wyjścia,<br />zezwolenie na przerwanie timera,<br />i główne załączenie przerwań. sei();<br />z obliczeniami można się wzorować na BB. <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=11549">Daro69</a> — 1 kwi 2018, o 17:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jeziorek74]]></name></author>
<updated>2018-04-01T10:42:13+01:00</updated>
<published>2018-04-01T10:42:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20537&amp;p=206374#p206374</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20537&amp;p=206374#p206374"/>
<title type="html"><![CDATA[Timer na Atmedze 2560]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20537&amp;p=206374#p206374"><![CDATA[
Witam!<br /><br />Proszę o pomoc, a właściwie wskazanie, które rejestry ustawić żeby uzyskać odpowiedni timer w Atmedze 2560. Próbowałem to zrobić bazując na Bluebooku i rozdziale o multipleksowaniu, ale niestety nie ogarniam tego w 2560.<br />Czy mógłby mi ktoś powiedzieć które konkretnie rejestry ustawić żeby uzyskać daną częstotliwość.<br />Powiedzmy że chcę użyć Timer5 i odświeżanie 20 Hz (dla przykładu, może być zupełnie inne). Do czego służą rejestry OCR5AH, OCR5AL, OCR5BH itd. Rozumiem że L i H to młodsze i starsze bajty 16 bitowego rejestru, ale po co w takim razie A, B, C ?<br /><br />Może na konkretnym przykładzie to zrozumiem... Z góry dziękuję za pomoc.<br /><br />Może powiem do czego mi to potrzebne... Kończę budowę napędu rolety wewnętrznej i do określenie położenia rolety użyłem tarczy z transoptorem szczelinowym na osi silnika (nie chcę ciągnąć kabli do wyłączników krańcowych). I teraz muszę tylko regularnie sprawdzać czy roleta nie dotarła do zadanego punktu i zatrzymać silnik. Całość oparta jest na Arduino Mega 2560, bo dołączone będą jeszcze pewne elementy automatyzujące.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2483">Jeziorek74</a> — 1 kwi 2018, o 10:42</p><hr />
]]></content>
</entry>
</feed>