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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2019-10-28T20:52:36+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=22641&amp;mode</id>
<entry>
<author><name><![CDATA[xentis]]></name></author>
<updated>2019-10-28T20:52:36+01:00</updated>
<published>2019-10-28T20:52:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22641&amp;p=222769#p222769</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22641&amp;p=222769#p222769"/>
<title type="html"><![CDATA[Re: Timer programowy, a czas w pętli głównej]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22641&amp;p=222769#p222769"><![CDATA[
Preskaler zawsze masz w  rejestrach timera więc ma wpływ wyłącznie na dany timer. Pętla główna programu napędzana jest z prędkością taktowania uC i ewentualnie zakłócana przerwaniami.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6265">xentis</a> — 28 paź 2019, o 20:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Szofer]]></name></author>
<updated>2019-10-28T14:45:51+01:00</updated>
<published>2019-10-28T14:45:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22641&amp;p=222745#p222745</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22641&amp;p=222745#p222745"/>
<title type="html"><![CDATA[Re: Timer programowy, a czas w pętli głównej]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22641&amp;p=222745#p222745"><![CDATA[
Chodziło mi bardziej o cały program, pętla z przerwaniami, jeden obrót , komunikacji nie licze bo ona może trwać cały czas.<br /><br />Np mamy zadanie gdzie pętla i mniej strategiczne przerwania ma trwać ileś tam dajmy nato 1ms, sam wyświetlacz 2x16 pochłania dużo czasu więc wszystko zależy od założeń programu.<br /><br />To kto co zrobi w przerwania h to jego dobra wola, prawidłowo powinno się wiadome krytyczne operacje.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7664">Szofer</a> — 28 paź 2019, o 14:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Szofer]]></name></author>
<updated>2019-10-28T09:04:37+01:00</updated>
<published>2019-10-28T09:04:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22641&amp;p=222733#p222733</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22641&amp;p=222733#p222733"/>
<title type="html"><![CDATA[Re: Timer programowy, a czas w pętli głównej]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22641&amp;p=222733#p222733"><![CDATA[
Jak się nie jest biegły w liczenia czasu instrukcji uC ( wciąż próbuje się tego nauczyć) to zapina się jakiś analizator stanu np saeale I patrzy na ekranie na wynik, jak nie złapie stanu przy jednym obrocie pętli to można to mnożyć np zablokować pętle while po np 10 czy 100 zapetleniach, potem dzielisz wynik z saeale. <br /><br />W sumie dalej nas nie uczy tego jak to policzyć bo to już &quot;ryba a nie wędka&quot; no ale cóż, nie jest to takie proste.<br /><br />Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7664">Szofer</a> — 28 paź 2019, o 09:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xentis]]></name></author>
<updated>2019-10-27T22:57:32+01:00</updated>
<published>2019-10-27T22:57:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22641&amp;p=222727#p222727</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22641&amp;p=222727#p222727"/>
<title type="html"><![CDATA[Re: Timer programowy, a czas w pętli głównej]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22641&amp;p=222727#p222727"><![CDATA[
Wyliczenie częstotliwości nie będzie takie proste, bo na całość składa się kilka czynników: wywoływane przerwanie i jego czasochłonność i częstotliwość + skoki do i z obsługi, skok i powrót do/z funkcji w której masz ten licznik++, inne rzeczy które są w pętli głównej jak warunki pętle i operacje.<br />Jeśli czujesz się na siłach to możesz podejrzeć plik asemblera po kompilacji (plik *.lss w katalogu Release) i na jego podstawie policzyć. Ale to nie będzie stała częstotliwość ze względu chociażby na przerwanie które jest wywoływane co twoje 200Hz. Pętla główna to nie timer, nie da się tego policzyć szybko i precyzyjnie, a dodatkowo wystarczy że coś zmienisz w kodzie to całe obliczenia trzeba na nowo robić bo każda zmiana powoduje że kompilator może zmienić listę rozkazów, a częstotliwość właśnie zależy od ich ilości.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6265">xentis</a> — 27 paź 2019, o 22:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xentis]]></name></author>
<updated>2019-10-27T22:03:20+01:00</updated>
<published>2019-10-27T22:03:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22641&amp;p=222724#p222724</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22641&amp;p=222724#p222724"/>
<title type="html"><![CDATA[Re: Timer programowy, a czas w pętli głównej]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22641&amp;p=222724#p222724"><![CDATA[
Ale ten licznik masz w pętli głównej programu?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6265">xentis</a> — 27 paź 2019, o 22:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xentis]]></name></author>
<updated>2019-10-27T21:08:38+01:00</updated>
<published>2019-10-27T21:08:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22641&amp;p=222722#p222722</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22641&amp;p=222722#p222722"/>
<title type="html"><![CDATA[Re: Timer programowy, a czas w pętli głównej]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22641&amp;p=222722#p222722"><![CDATA[
Czas wykonywania pętli głównej programu nie ma zupełnie nic wspólnego z ustawieniami timerów, chyba że te generują przerwania, które z kolei jeśli zawierają dużą ilość kodu i są często wywoływane to oczywiście spowalniają wykonywanie pętli głównej programu w skrajnych przypadkach mogą niemalże zatrzymać jej wykonywanie. Tu kwestia tego niemalże - jeśli przerwanie zostanie wywołane następuje skok do jego obsługi, i np w trakcie tej obsługi przychodzi kolejne wywołanie przerwania, zostaje podniesiona flaga oczekiwania na jego wykonanie, w momencie zakończenia obsługi obecnego przerwania następuje skok powrotny do wykonywania głównego programu, ale z uwagi na oczekującą flagę przerwania wykona się tylko jedna instrukcja z programu głównego i nastąpi kolejny skok do obsługi oczekującego przerwania.<br />Tak więc jak już pisałem program zwolni do jednej instrukcji pomiędzy przerwaniami - w skrajnym przypadku oczywiście.<br />Jeśli nie ma żadnych przerwań lub jeśli są krótkie i w miarę rzadko wywoływane  to sam program główny jest wykonywany z pełną prędkością zegara taktującego, przerywany jedynie tymi procedurami przerwań.<br />Właśnie dla tego tak pożądane są sprzętowe moduły w uC (liczniki, UARTy magistrale SPI i I2C itp) , ponieważ działają niezależnie od programu nie zajmując mocy obliczeniowej procesora.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6265">xentis</a> — 27 paź 2019, o 21:08</p><hr />
]]></content>
</entry>
</feed>