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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2012-08-30T12:57:19+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=1372&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-30T12:57:19+01:00</updated>
<published>2012-08-30T12:57:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1372&amp;p=14077#p14077</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1372&amp;p=14077#p14077"/>
<title type="html"><![CDATA[Re: SeperDebounce]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1372&amp;p=14077#p14077"><![CDATA[
<!-- l --><a class="postlink-local" href="http://forum.atnel.pl/post6106.html#p6106" >post6106.html#p6106</a><!-- l --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 30 sie 2012, o 12:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2012-08-30T11:31:04+01:00</updated>
<published>2012-08-30T11:31:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1372&amp;p=14069#p14069</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1372&amp;p=14069#p14069"/>
<title type="html"><![CDATA[Re: SeperDebounce]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1372&amp;p=14069#p14069"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />OK w razie czego proszę jeszcze raz zajrzeć do tego LINKU<br /><br /><!-- l --><a class="postlink-local" href="http://forum.atnel.pl/post11823.html#p11823" >post11823.html#p11823</a><!-- l --><br /></div><br />Ooooo... coś się po...teges... bo: &quot;wybrany wątek nie istnieje&quot; <img src="https://forum.atnel.pl/images/smilies/icon_question.gif" alt=":?:" title="Znak zapytania" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 30 sie 2012, o 11:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-05T10:46:40+01:00</updated>
<published>2012-08-05T10:46:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1372&amp;p=11824#p11824</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1372&amp;p=11824#p11824"/>
<title type="html"><![CDATA[Re: SeperDebounce]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1372&amp;p=11824#p11824"><![CDATA[
OK w razie czego proszę jeszcze raz zajrzeć do tego LINKU<br /><br /><!-- l --><a class="postlink-local" href="http://forum.atnel.pl/post6106.html#p6106" >post6106.html#p6106</a><!-- l --><br /><br />pod koniec jest aktualizacja lekcji nr.19 <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> — 5 sie 2012, o 10:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-05T09:16:57+01:00</updated>
<published>2012-08-05T09:16:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1372&amp;p=11817#p11817</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1372&amp;p=11817#p11817"/>
<title type="html"><![CDATA[Re: SeperDebounce]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1372&amp;p=11817#p11817"><![CDATA[
<div class="quotetitle">sirk77 napisał(a):</div><div class="quotecontent"><br />ok dzięki, funkcję brałem bezpośrednio z DVD1<br /></div><br /><br />No ale zaraz - to jak to jest że w przykładowym kodzie nie korzystasz z tego parametru ???? hmmm z tego co pamiętam ta poprawiona nieco funkcja była na DVD już od samego początku - czy się mylę i masz może na DVD bez tego parametru ???? daj znać proszę bo to mnie zaciekawiło teraz.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 5 sie 2012, o 09:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sirk77]]></name></author>
<updated>2012-08-05T09:11:44+01:00</updated>
<published>2012-08-05T09:11:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1372&amp;p=11816#p11816</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1372&amp;p=11816#p11816"/>
<title type="html"><![CDATA[Re: SeperDebounce]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1372&amp;p=11816#p11816"><![CDATA[
ok dzięki, funkcję brałem bezpośrednio z DVD1<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=187">sirk77</a> — 5 sie 2012, o 09:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-05T08:50:54+01:00</updated>
<published>2012-08-05T08:50:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1372&amp;p=11813#p11813</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1372&amp;p=11813#p11813"/>
<title type="html"><![CDATA[Re: SeperDebounce]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1372&amp;p=11813#p11813"><![CDATA[
No i tu kolega zrobił małą skuchę - od razu mówię.... tzn dlaczego czasem moi szanowni czytelnicy nie zaglądają do kodów na płycie DVD ???? Ja kody w książce traktuję nieco luźniej - one mają służyć tylko do wyjaśnienia pewnych zagadnień. Czasem niestety przy takiej okazji zdarzy się drobny błąd lub niedomówienie jak np w rozdziale o ADC - proszę sobie np przeczytać to:<br /><br /><!-- m --><a class="postlink" href="http://atnel.pl/domyslna-promocja-do-typu-int.html" >http://atnel.pl/domyslna-promocja-do-typu-int.html</a><!-- m --><br /><br />ale ok - przejdźmy do problemu kolegi sirk77 i rozwiążmy go do końca <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Proszę spojrzeć jaki nagłówek funkcji SuperDebounce znajduje się na płycie DVD:<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />void SuperDebounce(<strong><span style="color: #FF0000">uint8_t * key_state</span></strong>, 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) );<br /></div><br /><br />Widzi kolega tutaj zasadniczą różnicę ??? wprowadzony został dodatkowy parametr. Jego opis przy funkcji na DVD wygląda tak:<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />/************** 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 /> * <span style="color: #FF0000">*key_state - wskaźnik na zmienną w pamięci RAM (1 bajt)</span><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 /></div><br /><br />A przykład wykorzystania funkcji w main wygląda tak:<br /><br />[syntax=c]uint8_t k1, k2;<br /><br />SuperDebounce(&amp;k1, &amp;PINB, KL1, 20, 500, led1_xor, led1_xor );<br /><br />SuperDebounce(&amp;k2, &amp;PINB, KL2, DEFAULT, DEFAULT, inicjalizuj_lcd, licznik_na_lcd );[/syntax]<br /><br />Widzi kolega te dwie różne zmienne o nazwach k1 i k2 ??? to właśnie te dwa różne bajty w pamięci RAM na potrzeby pracy każdego wywołania funkcji SuperDebounce. Można bowiem powiedzieć, że tutaj funkcja SuperDebounce działa prawie jak obiekt <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> w języku wyższego rzędu. I każda instancja obiektu potrzebuje swojego kawałka RAM na przechowywanie stanów. Jeśli tego nie ma  i kod jest tylko taki jak z książki, to rzeczywiście funkcja będzie działać poprawnie TYLKO na dla JEDNEGO klawisza i nie ma znaczenia czy na tym samym porcie czy nie <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />ale jeśli użyjemy tej wersji z DVD to proszę bardzo &quot;hulaj dusza&quot; - można jej używać dla dowolnej ilości klawiszy i na dowolnych pinach i portach. Proszę sobie TO właśnie sprawdzić. Mówiąc TO mam na myśli kod na płycie DVD - OK?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 5 sie 2012, o 08:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sirk77]]></name></author>
<updated>2012-08-05T08:34:46+01:00</updated>
<published>2012-08-05T08:34:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1372&amp;p=11811#p11811</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1372&amp;p=11811#p11811"/>
<title type="html"><![CDATA[Re: SeperDebounce]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1372&amp;p=11811#p11811"><![CDATA[
generalnie kod nie powinien mieć większego znaczenia, poprzednio używałem przycisków podłączonych do portuD i działało prawidłowo:<br /><br />[syntax=c]<br />//definicje przycisków P1, P2, P3<br />#define P1_PIN (1&lt;&lt;PD0)<br />#define P2_PIN (1&lt;&lt;PD1)<br />#define P3_PIN (1&lt;&lt;PD2)<br />[/syntax]<br /><br />[syntax=c]SuperDebounce(&amp;PIND, P1_PIN, 40, 150, P1_press, P1_rep );<br />SuperDebounce(&amp;PIND, P2_PIN, 40, 150, P2_press, P2_rep );<br />SuperDebounce(&amp;PIND, P3_PIN, 40, 150, P3_press, P3_rep );[/syntax]<br /><br />obecnie przycisk P1 mam na porcie C, czyli zmiana w programie:<br /><br />[syntax=c]#define P1_PIN (1&lt;&lt;PC2)<br />...<br />SuperDebounce(&amp;PINC, P1_PIN, 40, 150, P1_press, P1_rep );[/syntax]<br /><br />funkcji SuperD uzywam bezpośrednio z projektu wielozadaniowego z książki nr1<br /><br />jeżeli zamiast <br />[syntax=c]SuperDebounce(&amp;PINC, P1_PIN, 40, 150, P1_press, P1_rep );[/syntax]<br />zastosuję zwykłe wykrywanie przycisku<br />[syntax=c]<br />#definekey_1!(PINC &amp; P1_PIN)<br />....<br />if(key_1){<br />_delay_ms(50);<br />if(key_1)LED_CWU_TOG;<br />}[/syntax]<br />wszystkie przyciski działają prawidłowo<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=187">sirk77</a> — 5 sie 2012, o 08:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-05T08:31:56+01:00</updated>
<published>2012-08-05T08:31:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1372&amp;p=11810#p11810</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1372&amp;p=11810#p11810"/>
<title type="html"><![CDATA[Re: SeperDebounce]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1372&amp;p=11810#p11810"><![CDATA[
<div class="quotetitle">Krauser napisał(a):</div><div class="quotecontent"><br />Jak chcesz podyskutować to pokaż kod programu.<br /></div><br /><br />A już myślałem że i tu podołasz ??? No byłbym w szoku <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ale po poprzednim wątku wiem że do wszystkiego jesteś pan zdolny <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Panowie - zadając pytania a szczególnie wypowiadając jakieś niesprawdzone opinie na temat kodów z książki, bardzo proszę - powołajcie się na jakiś kod źródłowy. OCZYWIŚCIE nie mówię tu o kodzie samej funkcji SuperDebounce() - tego kodu nie trzeba tu pokazywać - każdy go ma pod ręką.<br /><br />Chodzi o wasz kod np z main.c, żeby zobaczyć jak tej funkcji używacie w praktyce ...<br /><br />Ja dodam tylko, że ta funkcja nie ma absolutnie żadnych takich ograniczeń jak napisał na górze kolega sirk77 - a jeśli pokaże swój kod to pewnie uda nam się to wyjaśnić dlaczego tak a nie inaczej jemu się coś tam w programie zachowuje.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 5 sie 2012, o 08:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2012-08-05T08:03:16+01:00</updated>
<published>2012-08-05T08:03:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1372&amp;p=11804#p11804</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1372&amp;p=11804#p11804"/>
<title type="html"><![CDATA[Re: SeperDebounce]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1372&amp;p=11804#p11804"><![CDATA[
Jak chcesz podyskutować to pokaż kod programu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 5 sie 2012, o 08:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sirk77]]></name></author>
<updated>2012-08-05T07:57:57+01:00</updated>
<published>2012-08-05T07:57:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1372&amp;p=11800#p11800</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1372&amp;p=11800#p11800"/>
<title type="html"><![CDATA[SeperDebounce]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1372&amp;p=11800#p11800"><![CDATA[
z moich testów wynika, że SuperD działa wyłącznie jeżeli przyciski są skonfigurowane na tym samym porcie?<br />jeżeli mam jeden przycisk na innym porcie wtedy funkcyjnie przyciski się zamieniają, np. wciskam 1 a reakcja jest jak bym wcisnął 3(mam 3 przyciski).<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=187">sirk77</a> — 5 sie 2012, o 07:57</p><hr />
]]></content>
</entry>
</feed>