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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2018-12-31T15:15:37+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=21808&amp;mode</id>
<entry>
<author><name><![CDATA[marcom1983]]></name></author>
<updated>2018-12-31T15:15:37+01:00</updated>
<published>2018-12-31T15:15:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21808&amp;p=215277#p215277</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21808&amp;p=215277#p215277"/>
<title type="html"><![CDATA[Re: super debounce wywołanie funkcji przez dwa przyciski]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21808&amp;p=215277#p215277"><![CDATA[
I powstało coś takiego:<br />[syntax=c]if(( !(PINB &amp; S_PLUS)) &amp;&amp; ( !(PINB &amp; S_MINUS))) {<br /><br />   if(!Timer2){<br />   Timer2=150;<br />   block_debounce = 1;<br />   tog();<br />   }<br />}<br /><br />if(!block_debounce){<br /><br />SuperDebounce(&amp;k1, &amp;PINB, S_PLUS,100, 400, dodawanie_jed,dodawanie );<br /><br />SuperDebounce(&amp;k2, &amp;PINB, S_MINUS,100, 400, odejmowanie_jed,odejmowanie );<br /><br />}<br /><br />if(( PINB &amp; S_PLUS) &amp;&amp; ( PINB &amp; S_MINUS))block_debounce=0;[/syntax]<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />A przy okazji skoro masz Bluebooka to też dodaj jego ikonkę na dole w podpisie tak jak dodałeś ATB<br /></div><br />Mirku mam Bluebook i Greenbook i MkMenu, ATB nie mam, ale myślałem że dobrze dodałem ikony i u mnie się dobrze wyświetla  <img src="https://forum.atnel.pl/images/smilies/icon_e_surprised.gif" alt=":o" title="Zdziwiony" /><br />Wracając do tematu to zabieram się za MENU, a z MkMenu to czysta przyjemność.<br />Pozdrawiam, Wszystkiego Dobrego w Nowym Roku.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12590">marcom1983</a> — 31 gru 2018, o 15:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2018-12-31T09:51:16+01:00</updated>
<published>2018-12-31T09:51:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21808&amp;p=215260#p215260</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21808&amp;p=215260#p215260"/>
<title type="html"><![CDATA[Re: super debounce wywołanie funkcji przez dwa przyciski]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21808&amp;p=215260#p215260"><![CDATA[
<div class="quotetitle">JarekB napisał(a):</div><div class="quotecontent"><br />Sama idea funkcji jest taka że jest ona nieblokująca i działająca w tle<br />Czyli nigdy nie będzie tak że gdy naciśniesz dwa klawisze coś się stanie innego.<br />Zawsze któryś będzie pierwszy i ten pierwszy zostanie obsłużony.<br /></div><br /><br />Dokładnie tak i trzeba po prostu użyć nieco innej techniki obsługi przycisków.<br /><br />Tak krótko mówiąc można iść w tę stronę:<br /><br />[syntax=c]if(( !(PINB &amp; S_PLUS)) &amp;&amp; ( !(PINB &amp; S_MINUS))) { // ale pomyśl o obsłudze drgań styków<br />    jakas_fubkcja();<br />} else {<br /><br />   //... i tu dajesz swoje funkcje typu superdebounce - które obsługują pojedyncze przyciski<br /><br />}[/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br />Tylko nie żadne <strong><span style="font-size: 150%; line-height: normal"><span style="color: #FF0000">&amp;</span></span></strong><br /><div class="quotetitle">marcom1983 napisał(a):</div><div class="quotecontent"><br />if(( !(PINB &amp; S_PLUS))<strong><span style="color: #FF0000"><span style="font-size: 150%; line-height: normal">&amp;</span></span></strong>( !(PINB &amp; S_MINUS))){<br /></div><br /><br />a dwa znaki <strong><span style="font-size: 150%; line-height: normal"><span style="color: #0080FF">&amp;&amp;</span></span></strong> jak pokazałem wyżej - musisz zrozumieć czym różni się operator bitowy od operatora logicznego a w Bluebooku masz to dobrze wyjaśnione, warto zajrzeć i sobie przypomnieć. A przy okazji skoro masz Bluebooka to też dodaj jego ikonkę na dole w podpisie tak jak dodałeś ATB <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=54">mirekk36</a> — 31 gru 2018, o 09:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[marcom1983]]></name></author>
<updated>2018-12-31T09:37:47+01:00</updated>
<published>2018-12-31T09:37:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21808&amp;p=215259#p215259</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21808&amp;p=215259#p215259"/>
<title type="html"><![CDATA[Re: super debounce wywołanie funkcji przez dwa przyciski]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21808&amp;p=215259#p215259"><![CDATA[
Na PC <br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Nie ma takich stworów jak naciśnięcie <br />na przykład litery &quot;a&quot; plus &quot;b&quot;<br /></div><br />ale już w  innych urządzeniach są. Mamy tutaj multi efect do gitary.<br /><a href="https://obrazkiforum.atnel.pl/12590/a77fa36e897da29d3e2b14497cc8aeee.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/12590/a77fa36e897da29d3e2b14497cc8aeee.jpg" alt="Obrazek" /></a><br />Po wciśnięciu pierwszego i drugiego przycisku w tym samym czasie, załącza na się funkcja BYPASS. Jest to powszechnie stosowane rozwiązanie.<br />W swoim urządzeniu mam dwa przyciski. Jest to wypalanka do styropianu. Początkowo miało być tylko sterowanie mocą dodawanie i odejmowanie mocy od 0% do 100%. A wiadomo że w miarę jedzenia apetyt rośnie to i dopisałem parę funkcji do obsługi zabezpieczenia termicznego, auto/manual spust (przejście z trybu stanby w tryb wypalania), alarm temperaturowy. Pewne ustawienia mogę konfigurować po starcie urządzenia, jednak wartości alarmu, temperatura załączenia wentylatora, histereza wentylatora, są ustawione na stałe w kodzie programu. Naszła mnie ochota aby dopisać menu ustawień. Menu było by aktywowane właśnie przez wciśnięcie dwóch przycisków na raz.<br />Sam próbowałem  w tą stronę:<br />[syntax=c]if(( !(PINB &amp; S_PLUS))&amp;( !(PINB &amp; S_MINUS))){<br />jakas_fubkcja();<br />}[/syntax]<br />Wypalarka już jest złożona, więc jakiekolwiek zmiany hardware już nie wchodzą w grę. Urządzenie działa prawidłowo. A aktywowanie tego Menu chcę poprostu zrobić &quot;dla zasady&quot;. Tak sobie to wymyśliłem i chciałbym to zrealizować. Tylko jak?  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> <br />Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12590">marcom1983</a> — 31 gru 2018, o 09:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[JarekB]]></name></author>
<updated>2018-12-31T07:45:42+01:00</updated>
<published>2018-12-31T07:45:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21808&amp;p=215252#p215252</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21808&amp;p=215252#p215252"/>
<title type="html"><![CDATA[Re: super debounce wywołanie funkcji przez dwa przyciski]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21808&amp;p=215252#p215252"><![CDATA[
Myślę że to co chcesz zrobić w taki sposób jak piszesz jest niemożliwe.<br />Sama idea funkcji jest taka że jest ona nieblokująca i działająca w tle<br />Czyli nigdy nie będzie tak że gdy naciśniesz dwa klawisze coś się stanie innego.<br />Zawsze któryś będzie pierwszy i ten pierwszy zostanie obsłużony. <br /><br />Tak sobie myślę że gdybyś zrobił klawisz nazwijmy go &quot;shift&quot; <br />i oprogramował w ten sposób że naciśnięcie po nim dowolnego klawisza <br />powoduje zmianę jego obsługi, to wtedy było by OK <br />Zresztą zobacz jak jest w PC. Nie ma takich stworów jak naciśnięcie <br />na przykład litery &quot;a&quot; plus &quot;b&quot; <br />Zawsze jest jakiś klawisz funkcyjny plus dowolny klawisz.<br /><br />W zasadzie to można by po naciśnięciu klawisza &quot;a&quot; ustawić flagę &quot;a_naciśnięte&quot; <br />i gdy nie pojawi się &quot;b&quot; po określonym czasie  to wykonać standardową obsługę &quot;a&quot;<br />Tak samo w drugą stronę. <br />Ale zaczniesz tworzyć całą masę nowych bytów programowych.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18188">JarekB</a> — 31 gru 2018, o 07:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[marcom1983]]></name></author>
<updated>2018-12-30T20:31:26+01:00</updated>
<published>2018-12-30T20:31:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21808&amp;p=215239#p215239</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21808&amp;p=215239#p215239"/>
<title type="html"><![CDATA[Re: super debounce wywołanie funkcji przez dwa przyciski]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21808&amp;p=215239#p215239"><![CDATA[
Chodzi o to, że jak wcisnę<br />[syntax=c]S_PLUS[/syntax]<br />to wywołana jest funkacja<br />[syntax=c]dodawanie_jed()[/syntax]<br />Jak wcisnę [syntax=c]S_MINUS[/syntax]<br />to wywoływana jest funkcja<br />[syntax=c]odejmowanie_jed()[/syntax].<br />A teraz jeśli wcisnę [syntax=c]S_MINUS[/syntax] i <br />[syntax=c]S_PLUS[/syntax] jednocześnie, to chcę żeby wywołała się funkcja [syntax=c]jakas_tam()[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12590">marcom1983</a> — 30 gru 2018, o 20:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2018-12-30T19:42:33+01:00</updated>
<published>2018-12-30T19:42:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21808&amp;p=215237#p215237</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21808&amp;p=215237#p215237"/>
<title type="html"><![CDATA[Re: super debounce wywołanie funkcji przez dwa przyciski]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21808&amp;p=215237#p215237"><![CDATA[
witam,<br /><div class="quotetitle">marcom1983 napisał(a):</div><div class="quotecontent"><br />Nie wiem jak sie do tego zabrać. Nie mam pomysłu<br /></div><br />Myślę że kombinowałbym w funkcji &quot;SuperDebounce&quot;, a dokładniej - najpierw w miejscu gdzie jest zabezpieczenie przed wciśnięciem dwóch klawiszy,<br />potem w miejscach wywoływania funkcji ze wskaźników , np coś: <br />[syntax=c]if(KL_1){ // jezeli dodatkowy klawisz<br />    if(fun_3) fun_3(); // jezeli trzecia funkcja to wykonaj <br />}else{ // jezeli brak dodatkowego klawisza<br />    if(fun_1) fun_1(); //jezeli pierwsza funkcja to wykonaj<br />}[/syntax]<br />Jakoś w tę stronę. <br />a może rozbudować zabezpieczenie sprawdzające wciśnięcie dwóch klawiszy?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11549">Daro69</a> — 30 gru 2018, o 19:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[P3ndz3l3k]]></name></author>
<updated>2018-12-30T16:45:29+01:00</updated>
<published>2018-12-30T16:45:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21808&amp;p=215230#p215230</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21808&amp;p=215230#p215230"/>
<title type="html"><![CDATA[Re: super debounce wywołanie funkcji przez dwa przyciski]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21808&amp;p=215230#p215230"><![CDATA[
Jeśli chcesz użyć rozumiem jako argumentu dodatkowej funkcji to po prostu <br />wystarczy napisać swoją funkcję <br />wewnątrz której umieścisz więcej funkcji <br />a ta twoja będzie tylko jednym argumentem.<br /><br />No chyba, że nie zrozumiałem o co ci konkretnie chodzi.<br /><br />Pozdrawiam Paweł.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3709">P3ndz3l3k</a> — 30 gru 2018, o 16:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[marcom1983]]></name></author>
<updated>2018-12-30T13:01:53+01:00</updated>
<published>2018-12-30T13:01:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21808&amp;p=215223#p215223</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21808&amp;p=215223#p215223"/>
<title type="html"><![CDATA[super debounce wywołanie funkcji przez dwa przyciski]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21808&amp;p=215223#p215223"><![CDATA[
Witam.<br />Panowie potrzebuje aby ktoś naprowadził mnie na właściwe tory.<br />Mam obsługę dwóch przycisków:<br /><br />[syntax=c]SuperDebounce(&amp;k1, &amp;PINB, S_PLUS, 100, 400, dodawanie_jed, dodawanie );<br />SuperDebounce(&amp;k3, &amp;PINB, S_MINUS, 100, 400, odejmowanie_jed, odejmowanie );[/syntax]<br /><br />Obsługa czterech funkcji. Potrzebuje obsłużyć jeszcze jedną funkcję poprzez wciśnięcie [syntax=c]S_PLUS[/syntax] oraz [syntax=c]S_MINUS[/syntax] jednocześnie. Nie wiem jak sie do tego zabrać. Nie mam pomysłu  <img src="https://forum.atnel.pl/images/smilies/icon_e_confused.gif" alt=":?" title="Boi się" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12590">marcom1983</a> — 30 gru 2018, o 13:01</p><hr />
]]></content>
</entry>
</feed>