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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2019-04-18T13:45:11+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=22180&amp;mode</id>
<entry>
<author><name><![CDATA[szymanskim]]></name></author>
<updated>2019-04-18T13:45:11+01:00</updated>
<published>2019-04-18T13:45:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22180&amp;p=218357#p218357</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22180&amp;p=218357#p218357"/>
<title type="html"><![CDATA[Re: Atmega 328P i initializacja licznika T1 (16bit) i CTC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22180&amp;p=218357#p218357"><![CDATA[
Ok, w wolnym czasie zerknę. Mam te rozdział w planach ale nie było czasu. Na razie to przerobiłem biblotekę wysyłki po UART żeby mogła działać również bez przerywań - jest to akceptowalne w moim przypadku.<br /><br />Michał<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17916">szymanskim</a> — 18 kwi 2019, o 13:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mczarny]]></name></author>
<updated>2019-04-18T12:41:21+01:00</updated>
<published>2019-04-18T12:41:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22180&amp;p=218355#p218355</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22180&amp;p=218355#p218355"/>
<title type="html"><![CDATA[Re: Atmega 328P i initializacja licznika T1 (16bit) i CTC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22180&amp;p=218355#p218355"><![CDATA[
W pętli główniej ale nie znak po znaku tylko za pomocą timera programowego coś np:<br />[syntax=c]if(!Timer1) uart_puts(coś tam)[/syntax]<br />Masz <span style="color: #0040BF">BB</span> więc sięgnij do rozdziału o systemach czasu rzeczywistego pod koniec książki i zobaczysz jak można to pięknie zrobić.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4651">mczarny</a> — 18 kwi 2019, o 12:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[szymanskim]]></name></author>
<updated>2019-04-18T09:46:02+01:00</updated>
<published>2019-04-18T09:46:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22180&amp;p=218350#p218350</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22180&amp;p=218350#p218350"/>
<title type="html"><![CDATA[Re: Atmega 328P i initializacja licznika T1 (16bit) i CTC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22180&amp;p=218350#p218350"><![CDATA[
<div class="quotetitle">mczarny napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">szymanskim napisał(a):</div><div class="quotecontent">Przeanalizuj sobie procedurę wysyłania znaków przez uart. Jak myślisz czy wysyłanie korzysta z przerwań? Ano korzysta wiec następuje przerwanie w przerwaniu i robi się kaszana. Powołaj sobie lepiej timer programowy na podstawie sprzętowego i wysyłaj to co chcesz w pętli głównej korzystając już z timera programowego.<br /></div></div><br /><br />Ok dzięki. Rozumiem że jak napisałeś żeby wyświetlać w pętli głównej to sugerujesz zrobić wysyłanie na uarta bez przerywan czyli wrzucac po znaku i patrzec czy sie wyslalo i nie bawic sie w przerywania uarta? W domu przetestuje bibloteke wysyki bez przerywań - dodalem jednego #define żeby przełączyć biblotekę w tryb bezprzerywaniowy.<br /> Powiem szczerze, że jestem zaskoczony że nie  jest wskazane, żeby chodziło parę różnych przerywań. Zakładałem że jest stos i jeśli nawet taka sytuacja się wydarzy to nic złego się nie stanie, no chyba że mówimy o sytuacji gdzie zabraknie miejsca na zmienne na stosie? W końcu jest parę rodzajów przerywanie i chyba twórcy procka założyli że użytkownik wykorzysta parę na raz  typu timer + UART?  <br /><br />Swoją drogą ten licznik robiłem po to aby głównie mierzyć czas od ostatniego odbioru pakietu przez biloteke NRF24 i jak czas był za duży restartowałem procek ale okazuje się,że niezbyt o pomaga bo problem jest raczej z układem NRF (a możliwe że z całym ukłądem) i reset procka nic nie daje.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17916">szymanskim</a> — 18 kwi 2019, o 09:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mczarny]]></name></author>
<updated>2019-04-18T08:58:28+01:00</updated>
<published>2019-04-18T08:58:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22180&amp;p=218343#p218343</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22180&amp;p=218343#p218343"/>
<title type="html"><![CDATA[Re: Atmega 328P i initializacja licznika T1 (16bit) i CTC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22180&amp;p=218343#p218343"><![CDATA[
<div class="quotetitle">szymanskim napisał(a):</div><div class="quotecontent"><br />Natomiast pytanie dlaczego wysyłanie (a właściwie wrzucanie do bufora, wysyłka jest zrobiona na podstawie bluebooka) w przrywaniu to zły pomysł? Faktycznie jak dodam tą linijke to program przestaje dobrze działać - przestaje wykonywać się kod w pętli głównej?<br /></div><br />Przeanalizuj sobie procedurę wysyłania znaków przez uart. Jak myślisz czy wysyłanie korzysta z przerwań? Ano korzysta wiec następuje przerwanie w przerwaniu i robi się kaszana. Powołaj sobie lepiej timer programowy na podstawie sprzętowego i wysyłaj to co chcesz w pętli głównej korzystając już z timera programowego.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4651">mczarny</a> — 18 kwi 2019, o 08:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[szymanskim]]></name></author>
<updated>2019-04-18T07:56:07+01:00</updated>
<published>2019-04-18T07:56:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22180&amp;p=218338#p218338</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22180&amp;p=218338#p218338"/>
<title type="html"><![CDATA[Re: Atmega 328P i initializacja licznika T1 (16bit) i CTC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22180&amp;p=218338#p218338"><![CDATA[
<div class="quotetitle">mczarny napisał(a):</div><div class="quotecontent"><br />Po pierwsze to tryb CTC to tryb - 4<br />[syntax=c]TCCR1B |=(1&lt;&lt;WGM12);<br />...TIMSK1 |= (1&lt;&lt;OCR1A);[/syntax]<br />Natomiast wysyłanie czegoś przez uart w przerwaniu to nie jest dobry pomysł.<br /></div><br /><br />Dzięki teraz działa.  O ustawianiu bitów WGM13/12 wspominali  w rozdziale o TCCR1A i to mnie zmyliło.<br />Natomiast pytanie dlaczego wysyłanie (a właściwie wrzucanie do bufora, wysyłka jest zrobiona na podstawie bluebooka) w przrywaniu to zły pomysł? Faktycznie jak dodam tą linijke to program przestaje dobrze działać - przestaje wykonywać się kod w pętli głównej?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17916">szymanskim</a> — 18 kwi 2019, o 07:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mczarny]]></name></author>
<updated>2019-04-18T07:39:56+01:00</updated>
<published>2019-04-18T07:39:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22180&amp;p=218335#p218335</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22180&amp;p=218335#p218335"/>
<title type="html"><![CDATA[Re: Atmega 328P i initializacja licznika T1 (16bit) i CTC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22180&amp;p=218335#p218335"><![CDATA[
Po pierwsze to tryb CTC to tryb - 4<br />[syntax=c]TCCR1B |=(1&lt;&lt;WGM12);<br />TCCR1B |= (1&lt;&lt;CS12) | (1&lt;&lt;CS10;<br />OCR1A = ileś tam;<br />TIMSK1 |= (1&lt;&lt;OCR1A);[/syntax]<br />Natomiast wysyłanie czegoś przez uart w przerwaniu to nie jest dobry pomysł.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4651">mczarny</a> — 18 kwi 2019, o 07:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[piotr8605]]></name></author>
<updated>2019-04-17T23:51:35+01:00</updated>
<published>2019-04-17T23:51:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22180&amp;p=218331#p218331</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22180&amp;p=218331#p218331"/>
<title type="html"><![CDATA[Re: Atmega 328P i initializacja licznika T1 (16bit) i CTC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22180&amp;p=218331#p218331"><![CDATA[
W rejestrze TCCR1B masz bity WGM13 oraz WGM12, a nie w rejestrze TCCR1A.<br />[syntax=c]OCR1A = (F_CPU/256UL/REFRESH_RATE);[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=535">piotr8605</a> — 17 kwi 2019, o 23:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[szymanskim]]></name></author>
<updated>2019-04-17T23:40:57+01:00</updated>
<published>2019-04-17T23:40:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22180&amp;p=218330#p218330</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22180&amp;p=218330#p218330"/>
<title type="html"><![CDATA[Re: Atmega 328P i initializacja licznika T1 (16bit) i CTC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22180&amp;p=218330#p218330"><![CDATA[
Mam trop,  dopiero teraz zauważyłem że są dwa tryby ctc  i jak używam ocr1a to muszę użyć inny tryb. Sprawdzę rano..<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17916">szymanskim</a> — 17 kwi 2019, o 23:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[szymanskim]]></name></author>
<updated>2019-04-17T22:14:02+01:00</updated>
<published>2019-04-17T22:14:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22180&amp;p=218328#p218328</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22180&amp;p=218328#p218328"/>
<title type="html"><![CDATA[Atmega 328P i initializacja licznika T1 (16bit) i CTC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22180&amp;p=218328#p218328"><![CDATA[
Cześć,<br />Mam problem z właściwym ustawieniem licznika T1 tak żeby przerywanie uruchamiało się co 1s.<br />Licznik konfiguruje w następujący sposób:<br /><br />[syntax=c]TCCR1A |= (1&lt;&lt;WGM13)| (1&lt;&lt;WGM12);     // CTC<br />TCCR1B |= (1&lt;&lt;CS12) | (1&lt;&lt;CS10);  // dzielnik 1024<br />OCR1A  = 3905L;    // dla procesora 8MHz<br />TIMSK1 |= (1&lt;&lt;OCIE1A);  // przrywanie dla A[/syntax]<br /><br />i obsługa przerywania<br /><br />[syntax=c]ISR(TIMER1_COMPA_vect) {<br />uart_puts(&quot;X&quot;);<br />}[/syntax]<br /><br />Przerywanie uruchamia się ale nie co 1s i co więcej mam wrażenie że zmiany wartości w OCR1A nie wpływają na częstotliwość przerywania <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> Błąd jest pytanie tylko jaki?<br /><br />Dodatkowo jak dodałem blok konfiguracji i obsługi przerywania przestał działać mi odbiór pakietów z atnelowskiej biloteki NRF.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17916">szymanskim</a> — 17 kwi 2019, o 22:14</p><hr />
]]></content>
</entry>
</feed>