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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-10-15T20:47:44+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=31&amp;t=4489&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-10-15T20:47:44+01:00</updated>
<published>2013-10-15T20:47:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53080#p53080</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53080#p53080"/>
<title type="html"><![CDATA[Re: static i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53080#p53080"><![CDATA[
<div class="quotetitle">Antystatyczny napisał(a):</div><div class="quotecontent"><br />Superdebounce to genialna baza do nauki, przeróbek i tworzenia własnych softów<br /></div><br /><br />Czy genialna to już nie mi oceniać ale dzięki za dobre słowo, jednak co do reszty to WŁAŚNIE o TO chodzi ....<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 15 paź 2013, o 20:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-10-15T20:08:52+01:00</updated>
<published>2013-10-15T20:08:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53077#p53077</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53077#p53077"/>
<title type="html"><![CDATA[Re: static i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53077#p53077"><![CDATA[
<div class="quotetitle">rezasurmar napisał(a):</div><div class="quotecontent"><br />Mirku, wiem, że twierdzisz, że twoje funkcje nie są idealne<br /></div><br /><br />Nie rozumiemy się - to nie chodzi o to czy są idelane czy nie - ja bym nawet w takich kategoriach tego nie rozpatrywał ... po prostu mogą się do czegoś nadawać a do czegoś innego nie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> o to mi bardziej chodziło<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 15 paź 2013, o 20:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2013-10-15T19:39:19+01:00</updated>
<published>2013-10-15T19:39:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53073#p53073</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53073#p53073"/>
<title type="html"><![CDATA[Re: static i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53073#p53073"><![CDATA[
Po bojach z Antym udało się (jemu, jak tylko grzecznie pisałem co mi pokazywał <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />)<br />wyrzeźbić coś takiego<br />wycinek z SuperDebounce<br />[syntax=c]if( !key_press &amp;&amp; *key_state&gt;1 &amp;&amp; *key_state&lt;4 ) {<br />=&gt; tu zmianakey_number =  (((~(*KPIN))&amp;0xF0)&gt;&gt;4);<br />if(push_proc) push_proc();/* KEY_UP */<br />*key_state=idle;<br />} else[/syntax]<br /><br />następnie w pliku keys.c jest zadeklarowana zmienna globalna <br />uint8_t key_number;<br />w common.h <br />extern uint8_t key_number; co by była widoczna w innych modułach.<br /><br />No i mamy naszą upragnioną zmienną w której zależnie od tego jaki klawisz, będzie się pojawiać 1, 2, 4 lub 8 przynajmniej tak twierdzi Anty <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />.<br /><br />PS.<br />Mirku, wiem, że twierdzisz, że twoje funkcje nie są idealne, dla mnie są <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> bo działają bez zarzutu.<br />Co do repeat itd. no niestety myślę o wykorzystaniu w/w klawiszy też do obsługi ustawień serwisowych, co by nie uzależniać się od połączenia z wifi, stąd chcę zostawić podstawową funkcjonalność bibliotek SuperDebounce.<p>Statystyki: Napisane przez Gość — 15 paź 2013, o 19:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-10-15T19:17:44+01:00</updated>
<published>2013-10-15T19:17:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53068#p53068</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53068#p53068"/>
<title type="html"><![CDATA[Re: static i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53068#p53068"><![CDATA[
To nie o to chodzi - po prostu SuperDebounce nadaje się bardziej do obsługi pojedynczych klawiszy gdy mamy w zależności od naciśniętego klawisza wołać różne funkcje ... Nigdzie nie pisałem że pokazując ten przykład - SuperDebounce ma to być super uniwersalna funkcja do wszystkiego. Na 100% nie nadaje się np do obsługi klawiatury np matrycowej czy większej ilości klawiszy itp ...<br /><br />Dlatego upór rozumiem jak najbardziej <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ... ale czasem warto pomyśleć o zastosowaniach<br /><br />to już właśnie Antystatyczny zrobił coś na kształt obsługi ala klawiatury ... <br /><br />Albo inaczej - powiedz mi do czego ci tu SuperDebounce skoro:<br /><br />1. nie korzystasz z &quot;AutoRepeat&quot;<br />2. nie korzystasz z Callbacka a jeśli już to uwierz mi w bardzo niewłaściwy sposób - biorąc pod uwagę pierwszy przykład ale chyba i ten ostatni o ile go zrozumiałem ...<br /><br />Z tego co czuję (ale może się mylę oczywiście) ... tobie potrzeba szybko sprawdzić jaki klawisz jest wciśnięty (i nawet obsługa drgań nie jest tu zbyt istotna) a w zależności od wciśniętego klawisza zawołać jakąś funkcję ....<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 15 paź 2013, o 19:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2013-10-15T18:59:02+01:00</updated>
<published>2013-10-15T18:59:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53064#p53064</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53064#p53064"/>
<title type="html"><![CDATA[Re: static i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53064#p53064"><![CDATA[
Tylko jest jeden problem, wtedy SuperDebounce, jako uniwersalna funkcja przestaje spełniać swoje zadanie.<br /><br />Problemem jest to, że musiał bym tworzyć kolejne funkcje które obsługiwały by klawiaturę w trybie programowania urządzenia, sam zamysł jest świetny <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />, właśnie staram się go przenieść na oryginalną bibliotekę Debounca <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />.<br /><br />Uparty jestem Mirku <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />.<p>Statystyki: Napisane przez Gość — 15 paź 2013, o 18:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-10-15T18:17:57+01:00</updated>
<published>2013-10-15T18:17:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53056#p53056</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53056#p53056"/>
<title type="html"><![CDATA[Re: static i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53056#p53056"><![CDATA[
a co to jest ??? <br /><br /><br />reza przeczytaj to:<br /><br /><div class="quotetitle">squeez napisał(a):</div><div class="quotecontent"><br />To jeśli można ją &quot;okroić&quot; (autor wyrazi zgodę) może wyglądać np:<br /></div><br /><br /><br />i zrób to ... daj sobie spokój tutaj z SupeDebounce bo coś nie tak idzie na maxa ...<br /><br />przecież squeez podał ci gotowe rozwiązanie twojego kłopotu<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 15 paź 2013, o 18:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2013-10-15T18:08:43+01:00</updated>
<published>2013-10-15T18:08:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53055#p53055</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53055#p53055"/>
<title type="html"><![CDATA[Re: static i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53055#p53055"><![CDATA[
Po szybkim przejrzeniu i analizie posta kolegi squeez staram się urzeźbić coś takiego<br /><br />zmiana w SuperDebounce<br />[syntax=c]void SuperDebounce(uint8_t * key_state, volatile uint8_t *KPIN, uint8_t key_mask, uint16_t rep_time, uint16_t rep_wait,<br />----&gt; tuvoid (*push_proc)(uint8_t), void (*rep_proc)(void) )<br />...............................<br />if( !key_press &amp;&amp; *key_state&gt;1 &amp;&amp; *key_state&lt;4 ) {<br />----&gt; tuif(push_proc) push_proc(key_mask);/* KEY_UP */<br />*key_state=idle;<br />} else[/syntax]<br /><br />I nie wiem, czy dobrze kombinuje<p>Statystyki: Napisane przez Gość — 15 paź 2013, o 18:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2013-10-15T14:54:01+01:00</updated>
<published>2013-10-15T14:54:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53037#p53037</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53037#p53037"/>
<title type="html"><![CDATA[Re: static i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53037#p53037"><![CDATA[
W uproszczeniu wygląda to tak.<br /><br />Przylatuje ramka po UART, parsujemy dane (to powiedzmy że już opanowałem)<br />wyświetlamy daną na wyświetlaczu LED non stop, czyli ramka=LED, ramka=LED itd. Ot po prostu taki drugi wyświetlacz po przeciwnej stronie.<br /><br />Teraz do tego są 4klawisze, każda Kobita ma swój klawisz, kładzie na wadze tackę z towarem (koreczki śledziowe <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />), naciska klawisz, w tym momencie masa jest znana (przylatuje cały czas) wysyłamy numer Kobity (klawisza) przez drugiego UARTA (po wizfi potem, ale to nie jest istota problemu, na razie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />), a wraz z numerem, masę/tarę i co tam jeszcze potrzeba.<br /><br />Algorytm w sumie prosty jak drut, stąd brak jakiś opracowań w tej kwestii.<br /><br />Nie wiem, czy prosta funkcja obsługi klawisza nie będzie mi wysypywać ramki uarta/wizfi, bo w momencie naciśnięcia na klawisz np. jak będzie wylatywać dana z poprzedniego wciśnięcia.<br />Tzn. wyglądać do będzie tak, że urządzenie bedzie wysyłać daną po wizfi tak długo dopuki serwer nie odpowie że daną odebrał, ale w tym momencie mogą nastąpić inne ważenia, kolejkę przewiduje na jakieś 4-8 ważeń, serwer będzie przyjmować 32 stanowiska w jednym czasie, stąd czasem może dostawać czkawki.<br /><br />To tak poglądowo jak to będzie wyglądać.<br />Dlatego szukam całkiem nie blokującej funkcji i SuperDebounce wydawał sie najlepszy do tego <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />.<p>Statystyki: Napisane przez Gość — 15 paź 2013, o 14:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-10-15T14:51:31+01:00</updated>
<published>2013-10-15T14:51:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53036#p53036</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53036#p53036"/>
<title type="html"><![CDATA[Re: static i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53036#p53036"><![CDATA[
<div class="quotetitle">squeez napisał(a):</div><div class="quotecontent"><br />To jeśli można ją &quot;okroić&quot; (autor wyraża zgodę) może wyglądać np<br /></div><br /><br />No ale to na blogu to TYLKO przykład, jakiś tam wzór albo jeden z wielu wzorów przykładów <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />więc JAK NAJBARDZIEJ można albo nawet trzeba sobie modyfikować<br /><br />i to co tu pokazałeś to BARDZO DOBRA droga - na to co potrzebuje rezasurmar<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: kilkunastu sekundach ]</span></strong><br /><br />hmm wręcz gotowe i mega krótkie/proste rozwiązanie <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> — 15 paź 2013, o 14:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Sonix]]></name></author>
<updated>2013-10-15T14:46:01+01:00</updated>
<published>2013-10-15T14:46:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53033#p53033</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53033#p53033"/>
<title type="html"><![CDATA[Re: static i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53033#p53033"><![CDATA[
<div class="quotetitle">rezasurmar napisał(a):</div><div class="quotecontent"><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br />Jeszcze jak bym rozumiał co do mnie mówicie <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /><br /></div><br /><br /><br />Nic nie pękaj... nie jesteś tu osamotniony  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=127">Sonix</a> — 15 paź 2013, o 14:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2013-10-15T14:38:57+01:00</updated>
<published>2013-10-15T14:38:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53030#p53030</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53030#p53030"/>
<title type="html"><![CDATA[Re: static i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53030#p53030"><![CDATA[
Hmmmm, bardziej sie zastanawiam, czy nie &quot;zwinąć&quot; Antemu jego wypaśnej obsługi klawiatury na eventach <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />, oj, długa droga przedemną.<br /><br />Po prostu Debounce mi działa idealnie i to w takim stanie jak jest <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />. Co prawda gryzie mi się coś jak wrzuciłem i2c+LCD ale był tylko do testów, bez niego chodzi idealnie mimo salto mortale <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br />Jeszcze jak bym rozumiał co do mnie mówicie <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /><p>Statystyki: Napisane przez Gość — 15 paź 2013, o 14:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-10-15T14:38:33+01:00</updated>
<published>2013-10-15T14:38:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53029#p53029</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53029#p53029"/>
<title type="html"><![CDATA[Re: static i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53029#p53029"><![CDATA[
<div class="quotetitle">rezasurmar napisał(a):</div><div class="quotecontent"><br />Dlaczego nie można w ten sposób, że wywołać tą sama funkcje, sympatycznie to wygląda<br /></div><br /><br />No ale to jest dopiero zaprzeczenie zasad <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... i możliwości C ...<br /><br />toż można wołać jedną funkcję - sprawdzić w niej nr klawisza i w niej wywołać stosowną funkcję jak napisałem wyżej....<br /><br />A nie tak jak zrobiłeś że wołamy 4x tę samą funkcję, 4x odpalamy callbacka <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> a w callbacku sprawdzamy dopiero który to klawisz - to jest postawienie zagadnienia po prostu na głowie już tak w oderwaniu od konkretnego kodu źródłowego.<br /><br />Wydaje mi się że zapominasz najpierw o rozpisaniu sobie algorytmu - tylko lecisz na szybko z pisaniem kodu a potem boli <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> — 15 paź 2013, o 14:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-10-15T14:34:29+01:00</updated>
<published>2013-10-15T14:34:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53027#p53027</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53027#p53027"/>
<title type="html"><![CDATA[Re: static i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53027#p53027"><![CDATA[
<div class="quotetitle">rezasurmar napisał(a):</div><div class="quotecontent"><br />Najfajniej by było dorobić zwracanie parametru przez funkcję SuperDebounce zależnie od tego który klawisz jest naciśnięty.<br /></div><br /><br />ale spójrz na tą strukturę TKLAWISZ i ożeń to z JEDNĄ funkcją z bloga do obsługi klawisza ...<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br />Można wtedy wywoływać TYLKO jedną funkcję sprawdź klawisz ? w niej sprawdzić który wciśnięty - na podstawie tej struktury i odpalić stosowną funkcję<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 15 paź 2013, o 14:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2013-10-15T14:34:48+01:00</updated>
<published>2013-10-15T14:29:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53026#p53026</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53026#p53026"/>
<title type="html"><![CDATA[Re: static i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53026#p53026"><![CDATA[
No właśnie nie chciałem Mirku tego rozbijać na poszczególne funkcje <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />, tylko hmm, przerabianie kodu który się średnio rozumie też nie bardzo wchodzi w grę <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />, a znowu walenie po kilka funkcji do tego samego tylko zależnie od parametru znowu kłóci się z całą ideą C <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />, Bądź tu mądry <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />.<br /><br />Najfajniej by było dorobić zwracanie parametru przez funkcję SuperDebounce zależnie od tego który klawisz jest naciśnięty.<br /><br />PS. Dlaczego nie można w ten sposób, że wywołać tą sama funkcje, sympatycznie to wygląda <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> bo mamy jedną funkcję która obsługuje wiele klawiszy zależnie tylko który klawisz.<br />tj. zamysł był taki by funkcja obsługująca była jak by oddzielona od funkcji klawiszy, czyli funkcji obsługującej nie interesuje &quot;sprzętowa&quot; część klawiatury, tym zajmuje się Debounce, a debounce wysyła tylko parametr do mojej funkcji która zależnie od niego już ustawia co się ma dziać dalej <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />.<p>Statystyki: Napisane przez Gość — 15 paź 2013, o 14:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-10-15T14:26:16+01:00</updated>
<published>2013-10-15T14:26:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53025#p53025</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53025#p53025"/>
<title type="html"><![CDATA[Re: static i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53025#p53025"><![CDATA[
Można też założyć sobie strukturę TKLAWISZ<br /><br />[syntax=c]struct {<br />  uint8_t mask;<br />  volatile uint8_t * PORT;<br />  uint8_t komorka;<br />} TKLAWISZ;[/syntax]<br /><br />a następnie tablicę:<br /><br />[syntax=c]TKLAWISZ klawisze&#91;4&#93;;[/syntax]<br /><br />i później w kodzie wołać sobie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />[syntax=c]SuperDebounce(klawisze&#91;1&#93;, 10, 100, Obsluz_Babe, NULL);<br />SuperDebounce(klawisze&#91;2&#93;,  10, 100, Obsluz_Babe, NULL);<br />SuperDebounce(klawisze&#91;3&#93;, 10, 100, Obsluz_Babe, NULL);<br />SuperDebounce(klawisze&#91;4&#93;, 10, 100, Obsluz_Babe, NULL);[/syntax]<br /><br />tylko trzeba sobie oczywiście przerobić troszkę Superdebounca w środku....<br />----------------------------------------------<br /><br />ale zaraz rezasurmar - coś pan zrobił <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> teraz dopiero patrzę - sprawdzasz 4 klawisze a z każdej funkcji wołasz tą samą<br /><br />Obsluz_Bebe <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />i dopiero w niej sprawdzasz który wciśnięty <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ????  toż to postawienie WSZYSTKIEGO poczwórnie DO GÓRY nogami <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />jak już to wołaj funkcję <br /><br />Obsluz_BEBE;<br /><br />a w niej sprawdzaj wciśnięty klawisz<br /><br />albo przydziel każdej funkcji superdebounce inną do wykonania w zależności który wciśnięty - bo teraz to zrobiłeś tzn próbujesz robić samobójcze salto morta-dela<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br />albo użyj prostszej obsługi klawisza z mojego bloga <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />[syntax=c]if( !key_lock &amp;&amp; !(PINC &amp; KEY1 ) ) {<br />   key_lock = 50000;<br /><br />   wyslij_mase(1);<br /> <br />  } else if( key_lock &amp;&amp; (PINC &amp; KEY1 ) ) key_lock++;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 15 paź 2013, o 14:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2013-10-15T14:25:48+01:00</updated>
<published>2013-10-15T14:25:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53024#p53024</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53024#p53024"/>
<title type="html"><![CDATA[Re: static i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53024#p53024"><![CDATA[
swich tylko testowo jest<br />czyli tak docelowo<br /><br />[syntax=c]void Obsluz_Babe (void){<br />ERROR_LED_TOG;<br />uint8_t numer_baby;<br />if(baba_A)numer_baby = 1;<br />if(baba_B)numer_baby = 2;<br />if(baba_C)numer_baby = 3;<br />if(baba_D)numer_baby = 4;<br />wyslij_mase(numer_baby);<br />}[/syntax]<br />następnie<br /><br />[syntax=c]void wyslij_mase (uint8_t numer_baby){<br />char bufor&#91;2&#93;;<br />//lcd_str( itoa(numer_baby, bufor, 10) );<br />uart_puts(0,bufor);<br />uart_puts(0,mybuf);<br />uart_puts(0,&quot;\r\n&quot;);<br />}[/syntax]<br /><br />PS. Funkcja SuperDebouce (Mirkowa) nie zwraca nic, nie bardzo wiem jak dobrać się do tego inaczej, tj. jak wyłuskać z funkcji SuperDebounce który klawisz został naciśnięty, w sumie jest to tak zrobione, że na każdy klawisz mamy osobną funkcję, a nie na zasadzie kilka klawiszy =&gt; jedna funkcja do której jest przekazywany parametr który klawisz został nacisnięty, a by przerabiać to, to jestem za chudy w kapeluszu, stąd takie kombinacje alpejskie.<p>Statystyki: Napisane przez Gość — 15 paź 2013, o 14:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2013-10-15T13:55:33+01:00</updated>
<published>2013-10-15T13:55:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53021#p53021</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53021#p53021"/>
<title type="html"><![CDATA[static i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4489&amp;p=53021#p53021"><![CDATA[
Wie ktoś może jak to wygląda przy zmiennych static, walczę z Superdebounce<br />są tam zmienne &quot;klawiszy&quot; static<br /><br />I teraz np. mam coś takiego<br />w main.c<br />[syntax=c]SuperDebounce(&amp;baba_A, &amp;PIND, K_A, 10, 100, Obsluz_Babe, NULL);<br />SuperDebounce(&amp;baba_B, &amp;PIND, K_B, 10, 100, Obsluz_Babe, NULL);<br />SuperDebounce(&amp;baba_C, &amp;PIND, K_C, 10, 100, Obsluz_Babe, NULL);<br />SuperDebounce(&amp;baba_D, &amp;PIND, K_D, 10, 100, Obsluz_Babe, NULL);[/syntax]<br /><br />następnie fukcja obsługująca<br />w common.c<br /><br />[syntax=c]// Obsługa klawiatury A, B, C, D<br />void Obsluz_Babe (void){<br />ERROR_LED_TOG;<br />uint8_t numer_baby;<br />if(baba_A)numer_baby = 1;<br />if(baba_B)numer_baby = 2;<br />if(baba_C)numer_baby = 3;<br />if(baba_D)numer_baby = 4;<br />switch(numer_baby){<br />case 1: wyslij_mase(numer_baby); break;<br />case 2: break;<br />case 3: break;<br />case 4: break;<br />}<br />}[/syntax]<br /><br />No i oczywiście zmienne static uint8_t baba_A, baba_B, baba_C, baba_D; muszą być widoczne w main.c i w common.c <br />Przez to że są static są jak by prywatne, tylko dla jednego pliku przez co nie można ich okrasić extern <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />, bez static nie ma problemu, tylko teraz pytanie , czy static w tym wypadku jest niezbędny?, czy lepiej zrobić inaczej obsługę<br />No bo tak sobie myśle po co robić 4 różne funkcje, lepiej mi wybierać w funkcji wywoływanej 4klawiszami, za pomocą swich wykrywam który klawisz został naciśnięty.<p>Statystyki: Napisane przez Gość — 15 paź 2013, o 13:55</p><hr />
]]></content>
</entry>
</feed>