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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-04-25T23:43:36+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=2927&amp;mode</id>
<entry>
<author><name><![CDATA[żbik]]></name></author>
<updated>2013-04-25T23:43:36+01:00</updated>
<published>2013-04-25T23:43:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2927&amp;p=35278#p35278</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2927&amp;p=35278#p35278"/>
<title type="html"><![CDATA[Re: Obsługa kilku przycisków]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2927&amp;p=35278#p35278"><![CDATA[
W końcu znalazłem chwilę żeby się temu przyjrzeć i okazało się że podwójny przełącznik którego używam po wciśnięciu pierwszego rozwierał masę od drugiego! Rozebrałem, połączyłem i jest ok. Ehh ale namieszał <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />.<br />Dzięki za pomoc.<br /><br />PZDR.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=88">żbik</a> — 25 kwi 2013, o 23:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2013-04-24T17:05:35+01:00</updated>
<published>2013-04-24T17:05:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2927&amp;p=35119#p35119</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2927&amp;p=35119#p35119"/>
<title type="html"><![CDATA[Re: Obsługa kilku przycisków]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2927&amp;p=35119#p35119"><![CDATA[
Podejrzewam, że jest tu błąd, bo poniższe linie są mało logiczne.<br />[syntax=c]if(pwm&#91;diode_nr&#93;&#91;0&#93;!=bright) <br />{<br />   pwm&#91;diode_nr&#93;&#91;1&#93;=bright;<br />   pwm&#91;diode_nr&#93;&#91;2&#93;=1;<br />}[/syntax]<br />Jak sprawdzasz  pwm[diode_nr][<strong>0</strong>] to powinieneś wpisywać do pwm[diode_nr][<strong>0</strong>] a nie do pwm[diode_nr][<strong>1</strong>]. Jaki rozmiar ma tablica pwm? Możliwe, że wpisując 1 do pwm[diode_nr][2] zmieniasz sobie jasność następnej diody. <br />Polecam strukturę, bo wtedy nazwa pola informuje o tym co zmieniasz lub chociaż zastąpienie 0 i 1 odpowiednimi definicjami np.<br />[syntax=c]//1<br />typedef struct {<br />uint8_t bright;<br />uint8_t lock;<br />} PWM; //nowy typ zmiennej<br /><br />PWM pwm&#91;4&#93;; //utworzenie tablicy struktur dla 4 diod<br /><br />//...<br />brightChanger(&amp;pwm&#91;i&#93;,255);//przekazanie adresu struktury do funkcji<br />//...<br />void brightChanger(PWM * ptr, uint8_t bright) //funkcja pobierająca wskaźnik do struktury<br />{      <br />   if(ptr-&gt;bright != bright)<br />   {<br />      ptr-&gt;bright = bright;<br />      ptr-&gt;lock = 1;<br />   }                                      <br />}<br />//2<br />#define BRIGHT 0<br />#define LOCK 1<br />//<br />void brightChanger(uint8_t diode_nr, uint8_t bright)<br />{      <br />                if(pwm&#91;diode_nr&#93;&#91;BRIGHT&#93;!=bright)<br />                {<br />                        pwm&#91;diode_nr&#93;&#91;BRIGHT&#93;=bright;<br />                        pwm&#91;diode_nr&#93;&#91;LOCK&#93;=1;<br />                }                                      <br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 24 kwi 2013, o 17:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[żbik]]></name></author>
<updated>2013-04-23T21:34:12+01:00</updated>
<published>2013-04-23T21:34:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2927&amp;p=35090#p35090</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2927&amp;p=35090#p35090"/>
<title type="html"><![CDATA[Re: Obsługa kilku przycisków]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2927&amp;p=35090#p35090"><![CDATA[
Dzięki za odp.<br />Ale brightChanger jest raczej ok, bo pilotem działa zmiana kilku kanałów na raz, a zresztą nie ma co tu być &quot;skopane&quot;:[syntax=c]void brightChanger(uint8_t diode_nr, uint8_t bright)<br />{<br />if(pwm&#91;diode_nr&#93;&#91;0&#93;!=bright)//jeśli jasność aktualna inna od rządanej<br />{<br />pwm&#91;diode_nr&#93;&#91;1&#93;=bright;<br />pwm&#91;diode_nr&#93;&#91;2&#93;=1;<br />}<br />}[/syntax]W pętli głównej jest sprawdzane czy trzeba zmienić wypełnienie i jeśli tak, to zmiana z odpowiednim opóźnieniem do czułości oka.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=88">żbik</a> — 23 kwi 2013, o 21:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2013-04-23T18:23:08+01:00</updated>
<published>2013-04-23T18:23:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2927&amp;p=35064#p35064</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2927&amp;p=35064#p35064"/>
<title type="html"><![CDATA[Re: Obsługa kilku przycisków]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2927&amp;p=35064#p35064"><![CDATA[
Kod jest w porządku. Może błąd jest w funkcji brightChanger.<br /><br />PS.<br />Wygodniej zamiast tablicy 2 wymiarowej byłoby użyć tablicy struktur.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 23 kwi 2013, o 18:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[żbik]]></name></author>
<updated>2013-04-22T22:49:24+01:00</updated>
<published>2013-04-22T22:49:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2927&amp;p=35009#p35009</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2927&amp;p=35009#p35009"/>
<title type="html"><![CDATA[Obsługa kilku przycisków]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2927&amp;p=35009#p35009"><![CDATA[
Chcę zrobić nieblokującą obsługę kilku przycisków na raz i prawie działają moje wypociny, ale nie ogarniam, dlaczego nie chcą działać na raz. Tzn Jeśli wcisnę przycisk 2 i przytrzymam, to wciskając 1 wywołuje się zmiana ( w tym przypadku wypełnienia PWM ) dla obu kanałów, ale trzymając 1, wciskanie drugiego nie działa i wciskając oba na raz działa tylko pierwszy.<br />Utworzyłem tablicę &quot;ButtonTable[5][4]&quot; gdzie:<br />[x][0] = pin przycisku np. (1&lt;&lt;PD2)<br />[x][1] = flaga kierunku - jaśniej / ciemniej<br />[x][2] = debounce<br />[x][3] = flaga czy wciśnięty<br /><br />[syntax=c]volatile uint8_t buttonTable&#91;5&#93;&#91;4&#93;;<br />.<br />.<br />.<br />//w pętli głównej sprawdzanie przycisków:<br />.<br />.<br />ButtonChecker();<br />.<br />.<br />.<br /><br />//sama funkcja:<br />void ButtonChecker()<br />{<br />for (uint8_t i = 0; i &lt; 5; i++)//przelatujemy po wszystkich przyciskach<br />{<br />if (!(PIND &amp; (buttonTable&#91;i&#93;&#91;0&#93;)))// jeśli wciśnięty<br />{<br />if ((!buttonTable&#91;i&#93;&#91;2&#93;) &amp;&amp; (!buttonTable&#91;i&#93;&#91;3&#93;))//jeśli debounce=0 i flaga nie wciśnięty<br />{<br />buttonTable&#91;i&#93;&#91;3&#93;=1;//wciśnięty<br />if (buttonTable&#91;i&#93;&#91;1&#93;==0)//kierunek<br />{<br />brightChanger(i,255);//jaśniej<br />buttonTable&#91;i&#93;&#91;1&#93;=1;//zmiana kierunku<br />}<br />else<br />{<br />brightChanger(i,0);//ciemniej<br />buttonTable&#91;i&#93;&#91;1&#93;=0;//zmiana kierunku<br />}<br />}<br />}<br />else//jeśli przycisk nie wciśnięty<br />{<br />buttonTable&#91;i&#93;&#91;3&#93;=0;//zerujemy<br />buttonTable&#91;i&#93;&#91;2&#93;=5;//debounce 50ms, wojna z timerem jak nie wciśnięty;)<br />}<br />}<br />}<br /><br />//dalej timer zmniejszający debounce<br /><br />ISR(TIMER2_COMP_vect)<br />{<br />uint16_t n;<br /><br />for ( uint8_t i = 0;  i &lt; 5; i++)<br />{<br />n=buttonTable&#91;i&#93;&#91;2&#93;;<br />if (n) buttonTable&#91;i&#93;&#91;2&#93; = --n;<br />}<br />}[/syntax]<br /><br />Gdzie zbłądziłem?<br />A może w ogóle nie tędy droga? <br /><br />pzdr<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=88">żbik</a> — 22 kwi 2013, o 22:49</p><hr />
]]></content>
</entry>
</feed>