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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-04-18T12:49:21+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=2894&amp;mode</id>
<entry>
<author><name><![CDATA[t__d]]></name></author>
<updated>2013-04-18T12:26:43+01:00</updated>
<published>2013-04-18T12:26:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2894&amp;p=34615#p34615</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2894&amp;p=34615#p34615"/>
<title type="html"><![CDATA[Re: Przerwanie przy odbiorze znaku.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2894&amp;p=34615#p34615"><![CDATA[
Wielkie dzięki za odpowiedzi. Teraz mi się wszystko rozjaśniło. Bufor cykliczny to rozumiem taki bufor z głową i ogonem ? Takie rozwiązanie mi się przyda. A książkę muszę sobie zdecydowanie sprawić  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1066">t__d</a> — 18 kwi 2013, o 12:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[beret82]]></name></author>
<updated>2013-04-18T12:20:38+01:00</updated>
<published>2013-04-18T12:20:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2894&amp;p=34611#p34611</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2894&amp;p=34611#p34611"/>
<title type="html"><![CDATA[Re: Przerwanie przy odbiorze znaku.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2894&amp;p=34611#p34611"><![CDATA[
Przerwania są blokowane na czas obsługi. Można to obejść ale tylko wtedy gdy naprawdę wiesz po co.<br />Funkcja obsługująca przerwanie musi być możliwe krótka. Nie znaczy to, że ma mieć mało linii musi wykonać się szybko. Nie wstawiamy do obsługi przerwania funkcji _delay() i podobnych funkcji blokujących.  <br />Jeżeli nie skończysz obsługi przerwania przed nadejściem nowego znaku to go stracisz. W przypadku USART'u łatwo to policzyć ile masz czasu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=733">beret82</a> — 18 kwi 2013, o 12:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-04-18T12:16:40+01:00</updated>
<published>2013-04-18T12:16:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2894&amp;p=34609#p34609</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2894&amp;p=34609#p34609"/>
<title type="html"><![CDATA[Re: Przerwanie przy odbiorze znaku.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2894&amp;p=34609#p34609"><![CDATA[
Można by było bardzo dużo o tym pisać, każdy będzie jakoś tłumaczył i wszystko OK, tylko że nadal może być kłopot ....<br /><br />dlatego ZDECYDOWANIE polecam książkę:<br /><br /><!-- m --><a class="postlink" href="http://atnel.pl/mikrokontrolery-avr-jezyk-c.html" >http://atnel.pl/mikrokontrolery-avr-jezyk-c.html</a><!-- m --><br /><br />bo w niej skupiłem się właśnie od podstaw na opisaniu tego zagadnienia, a dodatkowo zaopatruję czytelnika w przykłady w kodach dla mikrokontrolera nie tylko jeśli chodzi o podstawową obsługę bez przerwań jak w nocie PDF, lecz także właśnie (bo tak się powinno robić) w oparciu o przerwania ale do tego BUFORY CYKLICZNE. Jeśli to przeczytasz to wtedy wszystko stanie się jasne.<br /><br />A tymczasem odpowiadając szczątkowo na twoje pytania:<br /><br />1. pewnie że jest zablokowane i to nie tylko to, wszystkie inne przerwania również<br />2. przerwanie odbiera jeden znak, pozostałe wpadają do bufora sprzętowego jeśli nadlecą w międzyczasie i zostaną obsłużone w kolejnym przerwaniu jak się dobrze program napisze <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />3. tu już za daleko popłynąłeś w rozważaniach ... gdybyś tak zrobił a miałbyś zbyt szybką transmisję to stos by ci się przepełnił i ZONK. Tak się nigdy nie robi - nie ma takich potrzeb.<br />4. krótka odpowiedź - ma się wykonywać JAK NAJKRÓCEJ, a to zależy od programisty jak ją napisze i dlatego własnie ....<br /><br />.... dlatego polecam książkę do której link podałem<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 18 kwi 2013, o 12:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Paul Dirac]]></name></author>
<updated>2013-04-18T12:49:21+01:00</updated>
<published>2013-04-18T11:25:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2894&amp;p=34599#p34599</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2894&amp;p=34599#p34599"/>
<title type="html"><![CDATA[Re: Przerwanie przy odbiorze znaku.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2894&amp;p=34599#p34599"><![CDATA[
Przerwanie dla usarta jest generowane w zaleznosci od rodzaju wektora przerwan, ktore wybrales, np. kiedy czeka ona w resjestrze UDR, lub gdy zakonczono nadawnie bajtu albo gdy  w buforze odbiorczym nie ma wiecej danych, gdy zawartosc rejestru UDR jest umieszczona w nadajniku. Skoro wiesz czym jest przerwanie, to wiesz, że ona zatrzyma się na ostatniej isntrukcji z programu glównego, odkładając adres na stosie i wykona instrukcje przerwania. Jeśli w przerwaniu masz jakas funckje to ona sie wykona, żeby przerwanie się wykonało. <br />Ziomek sam wybierasz, kiedy ma być generowane przerwanie, to chyba wiesz, co robisz w programie. No przyszly znaki, i masz wektor przerwan, że kiedy beda robisz przerwanie i zapisujesz je w w jakims buforze.<br />A jesli przerwanie bedzie zablokowane, to jak chcesz odebrac znak, albo cos innego. Tak jak z przyciskiem nie wcisniesz, nie bedzie przerwanie, przerwanie bedzie zablokowane, to nie odbierzesz sygnalu, ze wcisnales. <br />A ile razy sie wykona, tyle, az nie bedzie spelniony warunek z wektora przerwan, ktore ustawiles, co nie.<br /><br />Dokładnie kup książki mirka i zobacz jakie to łatwe w obczjeniu i stosowaniu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1035">Paul Dirac</a> — 18 kwi 2013, o 11:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[t__d]]></name></author>
<updated>2013-04-18T10:43:20+01:00</updated>
<published>2013-04-18T10:43:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2894&amp;p=34593#p34593</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2894&amp;p=34593#p34593"/>
<title type="html"><![CDATA[Przerwanie przy odbiorze znaku.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2894&amp;p=34593#p34593"><![CDATA[
Witam. Jestem początkujący i zastanawia mnie jeden problem. Załóżmy, że mamy program, który odbiera przez USART jakieś znaki używając przerwania. Po odbiorze każdego znaku jest wywoływane przerwanie i wykonywana jakaś funkcja, która obsługuje to przerwanie. <br /><br />1. Czy podczas wykonywania tej funkcji przerwanie jest zablokowane ?<br />2. Jeżeli przerwanie jest zablokowane to co się dzieje ze znakami, które powinny być odebrane ?<br />3. Jeżeli przerwanie nie jest blokowane i znaki są dalej odbierane to czy jednocześnie wykonuje się ta sama funkcja dla różnych odebranych znaków ?<br />4. Jak długo może wykonywać się taka funkcja w przerwaniu ?<br /><br />Pytania może banalne dla zaawansowanych programistów. A odpowiedzi bardzo by mi pomogły.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1066">t__d</a> — 18 kwi 2013, o 10:43</p><hr />
]]></content>
</entry>
</feed>