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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-04-04T22:00:32+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=6636&amp;mode</id>
<entry>
<author><name><![CDATA[mike660]]></name></author>
<updated>2014-04-04T22:00:32+01:00</updated>
<published>2014-04-04T22:00:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6636&amp;p=76999#p76999</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6636&amp;p=76999#p76999"/>
<title type="html"><![CDATA[Re: Problem z funkcą SuperDebounce]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6636&amp;p=76999#p76999"><![CDATA[
Panie Mikru jest Pan genialny <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Dziękuję za pomoc.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2666">mike660</a> — 4 kwi 2014, o 22:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kurnachatka]]></name></author>
<updated>2014-04-04T21:13:13+01:00</updated>
<published>2014-04-04T21:13:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6636&amp;p=76995#p76995</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6636&amp;p=76995#p76995"/>
<title type="html"><![CDATA[Re: Problem z funkcą SuperDebounce]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6636&amp;p=76995#p76995"><![CDATA[
Sorki za małą pomyłkę oczywiście miały to być wejścia.<br />A co do warunku to dałbym dodatkowe nawiasy aby określić kolejność wykonywania porównania tak dla czytelności.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=930">kurnachatka</a> — 4 kwi 2014, o 21:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-04-04T21:13:07+01:00</updated>
<published>2014-04-04T21:13:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6636&amp;p=76994#p76994</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6636&amp;p=76994#p76994"/>
<title type="html"><![CDATA[Re: Problem z funkcą SuperDebounce]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6636&amp;p=76994#p76994"><![CDATA[
<div class="quotetitle">mike660 napisał(a):</div><div class="quotecontent"><br />Czy ktoś ma pomysł jak to naprawić ?<br /></div><br /><br />Skorzystaj z tej poprawionej wersji funkcji gdzie jest przekazywany jeszcze jeden argument na początku<br /><br />[syntax=c]/************** funkcja SuperDebounce do obsługi pojedynczych klawiszy ***************<br /> * AUTOR: Mirosław Kardaś<br /> * ZALETY:<br /> * - nie wprowadza najmniejszego spowalnienia<br /> * - posiada funkcję REPEAT (powtarzanie akcji dla dłużej wciśniętego przycisku)<br /> * - można przydzielić różne akcje dla trybu REPEAT i pojedynczego kliknięcia<br /> * - można przydzielić tylko jedną akcję wtedy w miejsce drugiej przekazujemy 0 (NULL)<br /> *<br /> * Wymagania:<br /> * Timer programowy utworzony w oparciu o Timer sprzętowy (przerwanie 100Hz)<br /> *<br /> * Parametry wejściowe:<br /> *<br /> * *key_state - wskaźnik na zmienną w pamięci RAM (1 bajt) - do przechowywania stanu klawisza<br /> *  *KPIN - nazwa PINx portu na którym umieszczony jest klawisz, np: PINB<br /> *  key_mask - maska klawisza np: (1&lt;&lt;PB3)<br /> *  rep_time - czas powtarzania funkcji rep_proc w trybie REPEAT<br /> *  rep_wait - czas oczekiwania do przejścia do trybu REPEAT<br /> *  push_proc - wskaźnik do własnej funkcji wywoływanej raz po zwolenieniu przycisku<br /> *  rep_proc - wskaźnik do własnej funkcji wykonywanej w trybie REPEAT<br /> **************************************************************************************/<br />void SuperDebounce(uint8_t * key_state, volatile uint8_t *KPIN,<br />uint8_t key_mask, uint16_t rep_time, uint16_t rep_wait,<br />void (*push_proc)(void), void (*rep_proc)(void) )[/syntax]<br /><br />chodzi o:<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />*<strong><span style="color: #0040FF">key_state</span></strong> - wskaźnik na zmienną w pamięci RAM (1 bajt) - do przechowywania stanu klawisza<br /></div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 4 kwi 2014, o 21:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mike660]]></name></author>
<updated>2014-04-04T21:08:40+01:00</updated>
<published>2014-04-04T21:08:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6636&amp;p=76992#p76992</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6636&amp;p=76992#p76992"/>
<title type="html"><![CDATA[Re: Problem z funkcą SuperDebounce]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6636&amp;p=76992#p76992"><![CDATA[
PORTD ustawiony jako wejścia, z podciągnięciem do VCC. Tak jak pisałem wejścia na porcie C jak i D osobno działają lecz przy użyciu ich razem zakłócają się wzajemnie. Obstawiam że problem leży w samej funkcji SuperDebounce, możliwe że w warunku<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">if( last_key &amp;&amp; last_key != key_mask ) return; </div><br />Ale nie jestem pewny.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2666">mike660</a> — 4 kwi 2014, o 21:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kurnachatka]]></name></author>
<updated>2014-04-04T21:04:13+01:00</updated>
<published>2014-04-04T21:04:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6636&amp;p=76991#p76991</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6636&amp;p=76991#p76991"/>
<title type="html"><![CDATA[Re: Problem z funkcą SuperDebounce]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6636&amp;p=76991#p76991"><![CDATA[
Zakładam że port D masz ustawiony jako wyjścia i podciągnięty do VCC (wewnętrznie)?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=930">kurnachatka</a> — 4 kwi 2014, o 21:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mike660]]></name></author>
<updated>2014-04-04T20:41:08+01:00</updated>
<published>2014-04-04T20:41:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6636&amp;p=76985#p76985</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6636&amp;p=76985#p76985"/>
<title type="html"><![CDATA[Problem z funkcą SuperDebounce]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6636&amp;p=76985#p76985"><![CDATA[
Witam<br /><br />Zrobiłem układ do sterowania 12 przekaźnikami z 12 różnych wejść. <br />Klawisze 1-4 - PORTC<br />Klawisze 5-12 - PORTD<br />Do tego celu wykorzystuję funkcję SuperDebounce autorstwa Pana Mirka.<br /><br />Wywołanie funkcji:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">SuperDebounce(&amp;PINC, KL1, 1, 100, kl1_press,kl1_long);<br />SuperDebounce(&amp;PINC, KL2, 1, 100, kl2_press,kl2_long);<br />SuperDebounce(&amp;PINC, KL3, 1, 100, kl3_press,kl3_long);<br />SuperDebounce(&amp;PINC, KL4, 1, 100, kl4_press,kl4_long);<br />SuperDebounce(&amp;PIND, KL5, 1, 100, kl5_press,kl5_long);<br />.....<br /></div><br /><br />I niestety od klawisza nr 5 zaczynają się schody ponieważ jest on podłączony do innego portu niż klawisze 1-4. <br />Powoduje to dziwne zachowanie wszystkich pinów. Po wyrzuceniu wywołania metody z klawiszem 5 wszystko wraca do normy.<br /><br />Podsumowując program działa poprawnie tylko wtedy gdy używam przycisków 1-4 lub 5-12, przy użytkowaniu obu portów funkcja się nie sprawdza. Czy ktoś ma pomysł jak to naprawić ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2666">mike660</a> — 4 kwi 2014, o 20:41</p><hr />
]]></content>
</entry>
</feed>