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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-05-08T16:27:27+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=12&amp;t=18355&amp;mode</id>
<entry>
<author><name><![CDATA[Qume]]></name></author>
<updated>2017-05-08T16:27:27+01:00</updated>
<published>2017-05-08T16:27:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18355&amp;p=188686#p188686</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18355&amp;p=188686#p188686"/>
<title type="html"><![CDATA[Re: Pętla While a inne zadania w programie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18355&amp;p=188686#p188686"><![CDATA[
<div class="quotetitle">Jarecki napisał(a):</div><div class="quotecontent"><br />Generalnie w przerwaniu powinieneś ustawić tylko flagę na 1 a w pętli głównej sprawdzać jej stan i gdy jest równy 1 wtedy wykonujesz wszystkie zadania jakie teraz masz w przerwaniu. Jeżeli przerwania jest zgłaszane co sekundę to tych zadań w pętli głównej może być naprawdę dużo <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /></div><br /><br />Chciałbym tak zrobić jak piszesz bo to by było super rozwiązanie (czasem je stosuję w innych programach bez pętli while), ale jak wspominałem pętla główna u mnie do załączenie podświetlenia i od razu skok do pętli while a z pętli while do pętli Do program &quot;wyskakuje&quot; tylko na chwilę i to w różnych odstępach czasu.<br />Na początku co 10 sekund a potem nawet co 30 minut... - tyle trwają procesy które wykonują się w pętli while.<br /><br />Jeszcze jedno pytanie odnośnie Bascomowego symulatora.<br />Czy spotkał się ktoś z tym, że symulator krąży sobie tylko w pętli Do Loop a nie skacze do przerwań od timera?<br />Mam właśnie taki przypadek.<br />Próbowałem nawet na innym programie - pętla Do robi coś tam a w przerwaniu powinien się zwiększać jakiś tam licznik (zmienna Word) i niestety w symulatorze nic się z tą zmienną nie dzieje...Dlaczego?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17138">Qume</a> — 8 maja 2017, o 16:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[grzeniu 73]]></name></author>
<updated>2017-05-08T09:18:23+01:00</updated>
<published>2017-05-08T09:18:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18355&amp;p=188654#p188654</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18355&amp;p=188654#p188654"/>
<title type="html"><![CDATA[Re: Pętla While a inne zadania w programie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18355&amp;p=188654#p188654"><![CDATA[
Na zwykłym  IF   Then  możesz się pozbyć pętli while. Co do przerwań to tak jak wyżej napisane.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1519">grzeniu 73</a> — 8 maja 2017, o 09:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jarecki]]></name></author>
<updated>2017-05-08T07:16:20+01:00</updated>
<published>2017-05-08T07:16:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18355&amp;p=188649#p188649</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18355&amp;p=188649#p188649"/>
<title type="html"><![CDATA[Re: Pętla While a inne zadania w programie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18355&amp;p=188649#p188649"><![CDATA[
Generalnie w przerwaniu powinieneś ustawić tylko flagę na 1 a w pętli głównej sprawdzać jej stan i gdy jest równy 1 wtedy wykonujesz wszystkie zadania jakie teraz masz w przerwaniu. Jeżeli przerwania jest zgłaszane co sekundę to tych zadań w pętli głównej może być naprawdę dużo <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2511">Jarecki</a> — 8 maja 2017, o 07:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Qume]]></name></author>
<updated>2017-05-07T23:09:21+01:00</updated>
<published>2017-05-07T22:26:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18355&amp;p=188646#p188646</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18355&amp;p=188646#p188646"/>
<title type="html"><![CDATA[Pętla While a inne zadania w programie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18355&amp;p=188646#p188646"><![CDATA[
Cóż, nie wiedziałem jak dokładnie zatytułować wątek więc napisał jak napisałem...<br /><br />Mikrokontroler to Atmega32 taktowana zewnętrznym kwarcem 8MHz<br />Mam taki oto szkielet programu w którym w pętli Do zagnieżdżona jest pętla While<br /><br />[syntax=basic4gl]Do<br /><br />Light = 1<br />Buzz = 0<br /><br />      While X &lt;= X1<br />      ... 'instrukcje<br />      Wend<br /><br />... 'instrukcje<br /><br />Loop<br />End[/syntax]<br /><br />Wiadomo, że jeśli warunek nie jest spełniony to program cały czas krąży w pętli while.<br /><br />Równocześnie z pętlą while program wykonuje inne zadania - m.in.:<br />- obsługa wyświetlacza<br />- zwiększanie pięciu liczników (co sekundę)<br />- pomiar i uśrednianie ADC na jednym kanale<br />Te 3 zadania wykonuję w przerwaniu od TIMER0 - co 1 sekundę<br /><br />Wszystko działa, ale nadszedł czas na modyfikację programu.<br />Musiałem dodać obsługę klawiatury oraz...komunikację przez UART...<br />Dodałem obsługę tych dodatkowych instrukcji w przerwaniu od timera0 i działa, ale wydaje mi się, że za dużo tego się dzieje w tym przerwaniu.<br /><br />Pytanie do Was:<br />Jak usprawnić cały program i urządzenie żeby trochę odciążyć ilość tych operacji w tym przerwaniu?<br /><br />Czy dodanie kolejnego przerwania od TIMER2 i wrzucenie tam niektórych funkcji coś pomoże?<br />Chciałbym zwiększyć częstotliwość taktowania do 16MHz - czy to dobry pomysł?<br /><br />Czy jest jakaś inna możliwość usprawnienia działania takiego programu?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17138">Qume</a> — 7 maja 2017, o 22:26</p><hr />
]]></content>
</entry>
</feed>