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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-05-23T20:07:50+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=15432&amp;mode</id>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2016-05-23T20:07:50+01:00</updated>
<published>2016-05-23T20:07:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15432&amp;p=161031#p161031</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15432&amp;p=161031#p161031"/>
<title type="html"><![CDATA[Re: Klawiatura matrycowa, kilka przycisków na raz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15432&amp;p=161031#p161031"><![CDATA[
Dla 30 przycisków wypadało by wziąć zmienną Long bo ma 32 bity. Kwestia tylko osadzenia każdego przycisku w jednym bicie. Na takiej zmiennej o wiele łatwiej robić później wszelkie kombinacje związane z rozpoznawaniem wicśnięcia nawet i 10-u przycisków.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1922">SylwekK</a> — 23 maja 2016, o 20:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Ghann]]></name></author>
<updated>2016-05-23T16:50:10+01:00</updated>
<published>2016-05-23T16:50:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15432&amp;p=161028#p161028</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15432&amp;p=161028#p161028"/>
<title type="html"><![CDATA[Re: Klawiatura matrycowa, kilka przycisków na raz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15432&amp;p=161028#p161028"><![CDATA[
SylwekK, co rozumiesz przez &quot;duża zmienna&quot;?? <br /><br />Problem polega na tym że klawiatura może mieć do 30 przycisków, kombinacje ze zmiennymi w sensie takim, że klawisz np. S1 z innymi klawiszami daje bardzo dużą ilość kombinacji. Dlatego też, nie bardzo wiem jak się do tego zabrać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6944">Ghann</a> — 23 maja 2016, o 16:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2016-05-22T13:25:07+01:00</updated>
<published>2016-05-22T13:25:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15432&amp;p=161005#p161005</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15432&amp;p=161005#p161005"/>
<title type="html"><![CDATA[Re: Klawiatura matrycowa, kilka przycisków na raz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15432&amp;p=161005#p161005"><![CDATA[
Dodatkowa zmienna załatwi sprawę - duża zmienna uprości sprawę jeśli to jest większa klawiatura. Każdy przycisk przypisz do jednego bitu tej zmiennej i ustawiaj ten bit póki klawisz wciśnięty. Jeśli będzie kilka klawiszy wciśniętych to z automatu będziesz miał ustawione kilka bitów. Teraz analiza tej zmiennej w dowolny sposób już nie powinna sprawiać jakichkolwiek problemów. Można wysupłać sobie dowolny bit obrabiać go z innym czy robić czasówki krótki/długi wcisk...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1922">SylwekK</a> — 22 maja 2016, o 13:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2016-05-21T22:16:27+01:00</updated>
<published>2016-05-21T22:16:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15432&amp;p=160999#p160999</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15432&amp;p=160999#p160999"/>
<title type="html"><![CDATA[Re: Klawiatura matrycowa, kilka przycisków na raz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15432&amp;p=160999#p160999"><![CDATA[
Albo coś w tym kierunku.<br />Przepisywanie wartości zmiennej do innych zmiennych, po naciśnięciu klawisza.<br />trzeba coś pomyśleć nad tzw. drganiami styków.<br />[syntax=c]if(switch_flag &amp;&amp; /*zwolniony przycisk*/){              /*jezeli wcisniety wystawił flage_switch_flag. i jest zwolniony*/<br /><br />if(!zapisany_pierwszy){       /*jezeli pierwszy nie zapisany*/<br /><br />klawisz_pierwszy=switch_flag;/*przypisz wartosc z switch_flag*/<br />switch_flag=0;/*wyzeruj switch_flag*/<br />zapisany_pierwszy=1;/*zaznacz ze pierwszy zapisany*/<br />}<br />else {/*jezeli pierwszy byl zapisany*/<br /><br />klawisz_drugi=switch_flag;/*przypisz wartosc z switch_flag do klawisz_drugi*/<br />switch_flag=0;/*wyzeruj switch_flag*/<br />zapisany_pierwszy=0;/*zaznacz ze pierwszy zawolniony, */<br />}<br /><br />/* wyswietl kolejno : (klawisz_pierwszy, klawisz_drugi.)*/<br />}[/syntax]<br />Tak poglądowo, nie jako gotowy kod.<br />ewentualnie pomyśleć nad konstrukcją jakiejś własnej funkcji.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11549">Daro69</a> — 21 maja 2016, o 22:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2016-05-21T20:57:39+01:00</updated>
<published>2016-05-21T20:57:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15432&amp;p=160992#p160992</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15432&amp;p=160992#p160992"/>
<title type="html"><![CDATA[Re: Klawiatura matrycowa, kilka przycisków na raz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15432&amp;p=160992#p160992"><![CDATA[
A może to coś pomoże, podobny temat. <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><a href="http://forum.atnel.pl/post160304.html#p160304"  class="postlink">http://forum.atnel.pl/post160304.html#p160304</a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11549">Daro69</a> — 21 maja 2016, o 20:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Ghann]]></name></author>
<updated>2016-05-21T20:40:43+01:00</updated>
<published>2016-05-21T20:40:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15432&amp;p=160991#p160991</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15432&amp;p=160991#p160991"/>
<title type="html"><![CDATA[Klawiatura matrycowa, kilka przycisków na raz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15432&amp;p=160991#p160991"><![CDATA[
Witam.<br /><br />Głowię się i głowię już jakiś czas, jak zrobić wykrywanie dwóch klawiszy na raz w klawiaturze matrycowej. <br />Efekt jaki chce uzyskać:<br /><br />1) Klikamy dowolny przycisk na klawiaturze, co powoduję wyświetlenie numeru klawisza. (S1,S2,S3....itd)<br />2) Klikamy np. klawisz 1 potem 2 i wyświetla się na lcd S1 S2,<br />3) Sytuacja odwrotna klikam najpierw klawisz 2 potem 1 i wyświetla się na lcd S2 S1<br /><br />Z obsługą klawiatury można powiedzieć poradziłem sobie, czyli pkt. 1 zrealizowany. Natomiast 2 i 3 pkt jest dla mnie nie osiągalny. Dodam że nie jest to klawiatura 3x3 tylko dużo większa <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />i teraz tak:<br /><br />Obsługa wygląda mniej więcej tak:<br /><br />[syntax=c]PORTC &amp;= ~(1&lt;&lt;PC3);             // zerujemy kolumnę pierwszą<br />    _delay_ms(10);<br /> <br />  //if (!(PIND &amp; (1&lt;&lt;PD3))) switch_flag = 4;<br />    if (!(PIND &amp; (1&lt;&lt;PD4)))    switch_flag = 1;   //sprawdzenie wiersza pierwszego<br />    if (!(PIND &amp; (1&lt;&lt;PD1)))  switch_flag = 2;       //sprawdzenie wiersza drugiego<br />    if (!(PIND &amp; (1&lt;&lt;PD2)))    switch_flag = 3;     //sprawdzenie wiersza trzeciego<br /> <br />    PORTC |= (1&lt;&lt;PC3);[/syntax]<br /><br />Nie oczekuję podania kodu na tacy ale wskazania ścieżki jaką drogą pójść. Próbowałem zamiast zmiennej switch_flag wartość klawisza zapisywać w tablicy. No udało mi się to ale nie mam pojęcia jaki mechanizm stworzyć do wykrywania dwóch wciśniętych klawiszy no i to jeszcze żeby kolejność była poprawna.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6944">Ghann</a> — 21 maja 2016, o 20:40</p><hr />
]]></content>
</entry>
</feed>