Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 20 mar 2026, o 05:33


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 21 maja 2016, o 20:40 
Offline
Użytkownik

Dołączył(a): 28 lis 2014
Posty: 79
Pomógł: 0

Witam.

Głowię się i głowię już jakiś czas, jak zrobić wykrywanie dwóch klawiszy na raz w klawiaturze matrycowej.
Efekt jaki chce uzyskać:

1) Klikamy dowolny przycisk na klawiaturze, co powoduję wyświetlenie numeru klawisza. (S1,S2,S3....itd)
2) Klikamy np. klawisz 1 potem 2 i wyświetla się na lcd S1 S2,
3) Sytuacja odwrotna klikam najpierw klawisz 2 potem 1 i wyświetla się na lcd S2 S1

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 :)

i teraz tak:

Obsługa wygląda mniej więcej tak:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 maja 2016, o 20:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

A może to coś pomoże, podobny temat. ;)
http://forum.atnel.pl/post160304.html#p160304



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 maja 2016, o 22:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2015
Posty: 1448
Lokalizacja: okolice Warszawa
Pomógł: 149

Albo coś w tym kierunku.
Przepisywanie wartości zmiennej do innych zmiennych, po naciśnięciu klawisza.
trzeba coś pomyśleć nad tzw. drganiami styków.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Tak poglądowo, nie jako gotowy kod.
ewentualnie pomyśleć nad konstrukcją jakiejś własnej funkcji.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 maja 2016, o 13:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1988
Lokalizacja: Lipsko
Pomógł: 125

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...

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2016, o 16:50 
Offline
Użytkownik

Dołączył(a): 28 lis 2014
Posty: 79
Pomógł: 0

SylwekK, co rozumiesz przez "duża zmienna"??

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ć.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2016, o 20:07 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1988
Lokalizacja: Lipsko
Pomógł: 125

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.

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO