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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-10-06T21:25:58+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=16186&amp;mode</id>
<entry>
<author><name><![CDATA[Draxter32]]></name></author>
<updated>2016-10-06T21:25:58+01:00</updated>
<published>2016-10-06T21:25:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=170678#p170678</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=170678#p170678"/>
<title type="html"><![CDATA[Re: Efekty LED, przełączanie na switch-case]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=170678#p170678"><![CDATA[
Dziękuję @Daro69 za tymczasowe rozwiązanie.<br /><br />Z całą pewnością doczytam o timerach i zacznę je implementować w moich projektach. <br />Dziękuję wszystkim za pomoc i wskazówki.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8185">Draxter32</a> — 6 paź 2016, o 21:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ELEKTRON105]]></name></author>
<updated>2016-09-11T07:48:15+01:00</updated>
<published>2016-09-11T07:48:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168561#p168561</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168561#p168561"/>
<title type="html"><![CDATA[Re: Efekty LED, przełączanie na switch-case]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168561#p168561"><![CDATA[
Witam.<br />Pozwolę się wtrącić w dyskusję,tak jak kolega SYLWEKK pisze <div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Oooo kochany, proponuję jak najszybciej zmienić podejście, bo to się na tobie zemści. Jeśli Tak mówisz to jestem przekonamy na 100%, że jeszcze nie ogarnąłeś do końca timerów albo masz problem z dzieleniem zadań<br /></div>.<br />Ja z doświadczenia ostatnich eksperymentów dowiedziałem się  przede wszystkim od Mirka  oraz  HARRY że też mam taką dolegliwość.Zacisnąłem zęby procesorki na bok do łapek BB i...hura  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> odkryłem nowy świat no i teraz to dopiero jazda <img src="https://forum.atnel.pl/images/smilies/icon_e_surprised.gif" alt=":o" title="Zdziwiony" /> .<br />Proponuje się dostosować do zaleceń kolegów oni naprawdę wiedzą co w trawie piszczy <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .<br />Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2242">ELEKTRON105</a> — 11 wrz 2016, o 07:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jkarczew]]></name></author>
<updated>2016-09-10T22:00:17+01:00</updated>
<published>2016-09-10T22:00:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168559#p168559</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168559#p168559"/>
<title type="html"><![CDATA[Re: Efekty LED, przełączanie na switch-case]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168559#p168559"><![CDATA[
A dlaczego wszystkie funkcje coś teoretycznie zwracają- uint8_t push_btn(void) czy uint8_t efekt_xxx(void) ? powinno być <br />void push_btn(void) i void efekt_xxx(void).<br /><br />Gdyby dana funkcja coś zwracała to np.<br /> uint8_t button;<br />button=push_btn(); <br /><br />to wtedy miało by to sens.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=593">jkarczew</a> — 10 wrz 2016, o 22:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2016-09-10T19:35:35+01:00</updated>
<published>2016-09-10T19:35:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168556#p168556</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168556#p168556"/>
<title type="html"><![CDATA[Re: Efekty LED, przełączanie na switch-case]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168556#p168556"><![CDATA[
kolego &quot;Draxter32&quot;,<br />Gdybyś się upierał przy twoim sposobie z pierwszego postu, to przynajmniej zmień wpis:<br />[syntax=c]//|---------- Funkcji sprawdzania stanu klawisza ----------|//<br /> <br />uint8_t push_btn(void) {<br /> <br />        if (KEY_DOWN) {<br /> <br />                _delay_ms(80);          // eliminacja drgania stykow<br /> <br />                if(KEY_DOWN) {<br /> <br />                        counter++;              // inkrementuj licznik wyboru efektu<br /> <br />                        if (counter &gt; 4) {      // powrot na poczatek menu wyboru<br />                                counter = 0;<br />                        }<br />                }<br />        }<br /> <br />        return 0;<br /> <br />}[/syntax]<br />na coś w tym stylu , - też będzie blokować ale trochę pomoże przy inkrementacji. I naprawdę warto pokombinować coś nie blokującego. <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br />[syntax=c]uint8_t push_btn(void) {<br /> <br />        if (KEY_DOWN) {<br /> <br />                _delay_ms(80);          // eliminacja drgania stykow<br /> <br />                while(KEY_DOWN) {}  // czekaj<br /> <br />                        counter++;              // inkrementuj licznik wyboru efektu<br /> <br />                        if (counter &gt; 4) {      // powrot na poczatek menu wyboru<br />                                counter = 0;<br />                }<br />        }<br /> <br />        return 0;<br /> <br />}[/syntax]<br />powinno trochę pomóc .<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11549">Daro69</a> — 10 wrz 2016, o 19:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rafał555]]></name></author>
<updated>2016-09-10T17:34:18+01:00</updated>
<published>2016-09-10T17:34:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168555#p168555</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168555#p168555"/>
<title type="html"><![CDATA[Re: Efekty LED, przełączanie na switch-case]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168555#p168555"><![CDATA[
Panowie. Nie zrozumcie mnie źle. Napisałem już kilka zabawek na &quot;magic ledach&quot; i same efekty najlepiej pisało mi się na delayach. <br /> Projekty bardziej złożone oczywiście piszę nie blokująco. Moja centralka alarmowa to same timery w zasadzie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2697">Rafał555</a> — 10 wrz 2016, o 17:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2016-09-10T16:18:51+01:00</updated>
<published>2016-09-10T16:18:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168554#p168554</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168554#p168554"/>
<title type="html"><![CDATA[Re: Efekty LED, przełączanie na switch-case]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168554#p168554"><![CDATA[
<div class="quotetitle">Rafał555 napisał(a):</div><div class="quotecontent"><br />Ja jednak przy zabawie z diodami, wymyślaniu efektów preferuję dilaje, bo idzie łatwiej i intuicyjnie. Działanie pętli efektów zawsze można przerwać jakimś przerwaniem.<br /></div><br /><br />Oooo kochany, proponuję jak najszybciej zmienić podejście, bo to się na tobie zemści. Jeśli Tak mówisz to jestem przekonamy na 100%, że jeszcze nie ogarnąłeś do końca timerów albo masz problem z dzieleniem zadań <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />. Uwierz, czym szybciej zapomnisz o delay tym wcześniej będziesz pisał lepsze programy. Pewnie nie uwierzysz, ale w moich komercyjnych programach nie ma ani jednego delay ...i działają <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=1922">SylwekK</a> — 10 wrz 2016, o 16:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2016-09-10T15:45:21+01:00</updated>
<published>2016-09-10T15:45:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168553#p168553</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168553#p168553"/>
<title type="html"><![CDATA[Re: Efekty LED, przełączanie na switch-case]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168553#p168553"><![CDATA[
Ostatnio pisałem w temacie zegarka cyfrowego że delay lubi się mścić i polecam działać na timerach.<br /><br />Wysłane z mojego LIVE przy użyciu Tapatalka<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 10 wrz 2016, o 15:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rafał555]]></name></author>
<updated>2016-09-10T14:16:12+01:00</updated>
<published>2016-09-10T14:16:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168549#p168549</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168549#p168549"/>
<title type="html"><![CDATA[Re: Efekty LED, przełączanie na switch-case]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168549#p168549"><![CDATA[
<div class="quotetitle">Draxter32 napisał(a):</div><div class="quotecontent"><br />Aha chyba już rozumiem. Muszę w jakiś sposób napisać przerwanie zewnętrzne (od przycisku), które przerwie pracę programu głównego. Licznik zinkrementuje się i wszystko od nowa<br /></div><br /><br /> Dokładnie. Zrób klawisz na przerwaniu INT. Ja robiłem na PCINT, bo miałem już płytkę zrobioną.<br />Można też taki program napisać na timerach tzw.&quot;nieblokujący&quot;. Ja jednak przy zabawie z diodami, wymyślaniu efektów preferuję dilaje, bo idzie łatwiej i intuicyjnie. Działanie pętli efektów zawsze można przerwać jakimś przerwaniem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2697">Rafał555</a> — 10 wrz 2016, o 14:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xtreme69]]></name></author>
<updated>2016-09-10T12:48:15+01:00</updated>
<published>2016-09-10T12:48:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168541#p168541</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168541#p168541"/>
<title type="html"><![CDATA[Re: Efekty LED, przełączanie na switch-case]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168541#p168541"><![CDATA[
<div class="quotetitle">anshar napisał(a):</div><div class="quotecontent"><br />Zamiast:<br />[syntax=c]while(1)[/syntax]<br />można napisać:<br />[syntax=c]for( ; ; )[/syntax]<br /></div><br /><br />Dzięki za wyjaśnienie, teraz wiem coś nowego <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=8203">xtreme69</a> — 10 wrz 2016, o 12:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[anshar]]></name></author>
<updated>2016-09-10T12:46:04+01:00</updated>
<published>2016-09-10T12:46:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168540#p168540</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168540#p168540"/>
<title type="html"><![CDATA[Re: Efekty LED, przełączanie na switch-case]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168540#p168540"><![CDATA[
Zamiast:<br />[syntax=c]while(1)[/syntax]<br />można napisać:<br />[syntax=c]for( ; ; )[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7157">anshar</a> — 10 wrz 2016, o 12:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xtreme69]]></name></author>
<updated>2016-09-10T12:39:40+01:00</updated>
<published>2016-09-10T12:39:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168539#p168539</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168539#p168539"/>
<title type="html"><![CDATA[Re: Efekty LED, przełączanie na switch-case]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168539#p168539"><![CDATA[
Może się nie znam ale gdzie w kodzie jest: <br /><br />[syntax=c]while(1){<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8203">xtreme69</a> — 10 wrz 2016, o 12:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[anshar]]></name></author>
<updated>2016-09-10T12:14:43+01:00</updated>
<published>2016-09-10T12:14:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168537#p168537</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168537#p168537"/>
<title type="html"><![CDATA[Re: Efekty LED, przełączanie na switch-case]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168537#p168537"><![CDATA[
<div class="quotetitle">Draxter32 napisał(a):</div><div class="quotecontent"><br />Czy jest na to jakaś mądra rada?<br /></div><br />Przede wszystkim należy zapewnić prawidłowe zasilanie twojemu mikrokontrolerowi. Z twojego schematu wynika, że brakuje zasilania na nóżce AVCC oraz filtracji. Proponuję poczytać:<br /><a href="http://mirekk36.blogspot.co.uk/2012/04/mikrokontroler-prawidowe-zasilanie.html"  class="postlink">http://mirekk36.blogspot.co.uk/2012/04/mikrokontroler-prawidowe-zasilanie.html</a><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br />Brakuje też rezystora 10k na nóżce Reset.  <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=7157">anshar</a> — 10 wrz 2016, o 12:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kurnachatka]]></name></author>
<updated>2016-09-10T11:25:19+01:00</updated>
<published>2016-09-10T11:25:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168535#p168535</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168535#p168535"/>
<title type="html"><![CDATA[Re: Efekty LED, przełączanie na switch-case]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168535#p168535"><![CDATA[
Zajrzyj tutaj powinno rozwiązać problem z blokującym kodem. <br /><a href="http://mirekk36.blogspot.com/2012/10/obsuga-klawiszy-zwoka-czasowa-cd3.html?m=1"  class="postlink">http://mirekk36.blogspot.com/2012/10/obsuga-klawiszy-zwoka-czasowa-cd3.html?m=1</a><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 9 minutach ]</span></strong><br /><br />Pozatym w Bluebook rozdział 8.4 wstęp do systemów czasu rzeczywistego masz opisane to zagadnienie bardzo szczegółowo. Zerknij tam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=930">kurnachatka</a> — 10 wrz 2016, o 11:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Draxter32]]></name></author>
<updated>2016-09-10T11:12:08+01:00</updated>
<published>2016-09-10T11:12:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168533#p168533</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168533#p168533"/>
<title type="html"><![CDATA[Re: Efekty LED, przełączanie na switch-case]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168533#p168533"><![CDATA[
Aha chyba już rozumiem. Muszę w jakiś sposób napisać przerwanie zewnętrzne (od przycisku), które przerwie pracę programu głównego. Licznik zinkrementuje się i wszystko od nowa<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8185">Draxter32</a> — 10 wrz 2016, o 11:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rafał555]]></name></author>
<updated>2016-09-10T08:00:44+01:00</updated>
<published>2016-09-10T08:00:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168526#p168526</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168526#p168526"/>
<title type="html"><![CDATA[Re: Efekty LED, przełączanie na switch-case]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168526#p168526"><![CDATA[
Właśnie kończę podobny program. Klawisz realizowałem na PCINT. Ale z racji tego, że nie byłem do końca zadowolony z jego działania dolutowałem odbiornik podczerwieni i teraz jest OK. Z pilotem to dopiero można poszaleć i obsługę &quot;drgań styków&quot; mam z automatu zrealizowaną.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2697">Rafał555</a> — 10 wrz 2016, o 08:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[QuadMan]]></name></author>
<updated>2016-09-10T00:40:41+01:00</updated>
<published>2016-09-10T00:40:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168518#p168518</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168518#p168518"/>
<title type="html"><![CDATA[Re: Efekty LED, przełączanie na switch-case]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168518#p168518"><![CDATA[
Witam,<br /><br />Tak jak kolega <strong>Harry</strong> napisał, masz program napisany liniowo, generując efekty na LED-ach blokujesz uC w tych funkcjach. Widzę, że masz BB, przeczytaj rozdział &quot;Projekt wielozadaniowy&quot; i zainteresuj się zwłaszcza timerami programowymi. Spróbuj może na początek napisać program obsługujący jedną diodę LED, której częstotliwość migania będziesz zmieniał przyciskiem, <strong>ale uwaga: w sposób całkowicie nieblokujący, bez użyci jakiegokolwiek delay-a.</strong> Pytaj, jeśli będziesz miał z tym problemy.<br /><br />Pozdrawiam, QuadMan.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5291">QuadMan</a> — 10 wrz 2016, o 00:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Harry]]></name></author>
<updated>2016-09-09T23:40:52+01:00</updated>
<published>2016-09-09T23:40:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168515#p168515</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168515#p168515"/>
<title type="html"><![CDATA[Re: Efekty LED, przełączanie na switch-case]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168515#p168515"><![CDATA[
Nie działa jak powinno, bo program czeka na zakończenie migania, czyli w tej chwili nic do niego nie dociera.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14685">Harry</a> — 9 wrz 2016, o 23:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Draxter32]]></name></author>
<updated>2016-09-09T23:13:47+01:00</updated>
<published>2016-09-09T23:13:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168514#p168514</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168514#p168514"/>
<title type="html"><![CDATA[Efekty LED, przełączanie na switch-case]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16186&amp;p=168514#p168514"><![CDATA[
Z racji tego, że jest to mój pierwszy post, na początku pragnę przywitać się z wszystkimi użytkownikami forum. <br /><br />Trafiam do Was z małym problemem. Otóż postanowiłem zbudować układ prezentujący różne wariacje ledowe. Każdy efekt jest prezentowany na ośmiu diodach. Docelowo całość będzie napędzać MałaMegi8. <br /><br />Program napisany. Obecnie faza testowania i tu napotkałem problem z klawiszem. Podczas zmiany efektu dziwnie się zachowuje. Bardzo topornie i mało precyzyjnie. Trzeba naciskać kilka razy.<br /><br />Czy jest na to jakaś mądra rada?<br /><br /><a href="https://obrazkiforum.atnel.pl/8185/de3b6085c574ac5350473e0295193b17.gif"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/8185/de3b6085c574ac5350473e0295193b17.gif" alt="Obrazek" /></a><br /><br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 8 wrz 2016<br /> *      Author: Grzegorz<br /> */<br /><br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />// Definicje preprocesora<br /><br />#define LED1 (1&lt;&lt;PA0)<br />#define LED2 (1&lt;&lt;PA1)<br />#define LED3 (1&lt;&lt;PA2)<br />#define LED4 (1&lt;&lt;PA3)<br />#define LED5 (1&lt;&lt;PA4)<br />#define LED6 (1&lt;&lt;PA5)<br />#define LED7 (1&lt;&lt;PA6)<br />#define LED8 (1&lt;&lt;PA7)<br /><br />#define KEY_PIN (1&lt;&lt;PD7)// podlaczenie przycisku do pinu x<br />#define KEY_DOWN !(PIND &amp; KEY_PIN) // sprawdzanie czy stan niski<br /><br />// Deklaracje funkcji<br /><br />uint8_t effect_one();<br />uint8_t effect_two();<br />uint8_t effect_thr();<br />uint8_t effect_fou();<br /><br />uint8_t clear_led();<br /><br />uint8_t push_btn(void);<br /><br />// Definicje zmiennych globalnych<br /><br />volatile uint8_t counter = 0;// zmienna licznik wyboru efektu<br /><br /><br />int main (void) {<br /><br />// Inicjalizacja<br /><br />DDRD &amp;= ~KEY_PIN;// kierunke pinu PD7 na wejscie dla przycisku<br />PORTD |= KEY_PIN;// podciagniecie przycisku do Vcc przez R<br /><br />DDRA |= (LED1 | LED2 | LED3 | LED4 | LED5 | LED6 | LED7 | LED8); // rejestr kierunku danych, piny PAx na wyjscie<br /><br />// Petla glowna programu<br /><br />for(;;) {<br /><br />push_btn();// sprawdzanie stanu przycisku<br /><br />//|---------- MENU WYBORU EFEKTU ----------|//<br /><br />switch( counter )<br />{<br />case 1:<br />effect_one();<br />    break;<br /><br />case 2:<br />effect_two();<br />    break;<br /><br />case 3:<br />effect_thr();<br />    break;<br /><br />case 4:<br />effect_fou();<br />break;<br /><br />case 0:<br />clear_led();<br />break;<br /><br />default:<br />clear_led();<br />    break;<br />}<br /><br />}<br />}<br /><br /><br /><br /><br /><br />//|---------- Funkcji sprawdzania stanu klawisza ----------|//<br /><br />uint8_t push_btn(void) {<br /><br />if (KEY_DOWN) {<br /><br />_delay_ms(80);// eliminacja drgania stykow<br /><br />if(KEY_DOWN) {<br /><br />counter++;// inkrementuj licznik wyboru efektu<br /><br />if (counter &gt; 4) {// powrot na poczatek menu wyboru<br />counter = 0;<br />}<br />}<br />}<br /><br />return 0;<br /><br />}<br /><br />//|---------- Funkcja wygaszająca wszystkie LED ----------|//<br /><br />uint8_t clear_led() {<br /><br />PORTA |= (LED1 | LED2 | LED3 | LED4 | LED5 | LED6 | LED7 | LED8);<br /><br />}<br /><br />//|---------- Efekt: BlinkingLEDs ----------|//<br /><br />uint8_t effect_one() {<br /><br />PORTA ^= (LED1 | LED2 | LED3 | LED4 | LED5 | LED6);<br />PORTA ^= (LED7 | LED8);<br />_delay_ms(100);<br />}<br /><br />//|---------- Efekt: Runner ----------|//<br /><br />uint8_t effect_two() {<br /><br />uint8_t i, led = 1;<br /><br />for (i=0; i &lt; 8; i++) {<br /><br />PORTA = ~led;<br />led = led*2;<br />_delay_ms(30);<br />}<br />}<br /><br />//|---------- Efekt: Knight Rider ----------|//<br /><br />uint8_t effect_thr() {<br /><br />uint8_t i, led_one = 1, led_two = 128;<br /><br />for (i=0; i &lt; 8; i++) {<br /><br />PORTA = ~led_one;<br />led_one = led_one*2;<br />_delay_ms(30);<br />}<br /><br />for (i=0; i &lt; 8; i++) {<br /><br />PORTA = ~led_two;<br />led_two = led_two/2;<br />_delay_ms(30);<br />}<br /><br />}<br /><br />//|---------- Efekt: MiddleCollisionLED ----------|//<br /><br />uint8_t effect_fou() {<br /><br />uint8_t i, half_one_lsb = 1, half_one_msb = 8,<br />half_two_msb = 16, half_two_lsb = 128;<br /><br /><br />for (i=0; i &lt; 4; i++) {<br /><br />PORTA = ~(half_one_lsb | half_two_lsb);<br />half_one_lsb = half_one_lsb*2;<br />half_two_lsb = half_two_lsb/2;<br /><br />_delay_ms(50);<br />}<br /><br />for (i=0; i &lt; 4; i++) {<br /><br />PORTA = ~(half_one_msb | half_two_msb);<br />half_one_msb  = half_one_msb/2;<br />half_two_msb = half_two_msb*2;<br />_delay_ms(50);<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8185">Draxter32</a> — 9 wrz 2016, o 23:13</p><hr />
]]></content>
</entry>
</feed>