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



Teraz jest 25 kwi 2024, o 17:11


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 7 lut 2016, o 16:12 
Offline
Użytkownik

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

Witam. Głowię się i głowię jak obsłużyć klawiaturę matrycową, no i nie mam jakoś pomysłu. Natrafiłem na poradnik:
topic814.html

Czy mógłby ktoś mi w miarę łopatologicznie wytłumaczyć o co chodzi w tej części kodu??

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



Generalnie w klawiaturze matrycowej chodzi o to iż, część portów ustawiamy jako wyjście a część jako wejście. To raczej rozumiem i nie mam z tym problemu ale cały powyższy kod sprawia mi kłopot :/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lut 2016, o 11:20 
Offline
Nowy

Dołączył(a): 14 lis 2014
Posty: 6
Pomógł: 0

Dobrze byłoby, gdybyż pokazał schemat układu, jednak w skrócie, bo jeżeli nie rozumiesz kodu to znaczy, ze nie jest to kod pisany przez Ciebie...

Odczyt z klawiatury w wiekszosci przypadkow jest realizowany podobnie, czyli mniej wiecej tak:

1 2 3 4
A
B
C
D

np. kolumny 1 2 3 4 są podciągnięte rezystorami do logicznej jedynki
sprawdzasz wartosci na kolumnach wczesniej podajac logiczne 0 na kolejne wiersze

i tak: w przypadku gdy podajesz 0 na linie A i masz wcisniety klawisz A4 to na kolumnie 4 beziesz mial w momencie odczytu 0 logiczne a na pozostalych 1. Odczytujac kolumny otrzymasz wartosc 1110 - i tym sposobem wiesz, ze jest to klawisz A4. sprawdzasz kolejna linie... itd...

Oczywiscie nalezy wprowadzic np. opoznienia w celu eliminacji drgan stykow i ew. jezeli wykluczasz, ze wiecej niz jeden przycisk moze byc wcisniety w tym samym czasie to tez nalezy to zrealizowac w kodzie.

Dobrze tez jest sprawdzac np po odczycie czy wszystkie przyciski sa puszczone ... ale to juz wszystko zalezy od potrzeb.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lut 2016, o 14:06 
Offline
Użytkownik

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

Dokładnie, kodu nie rozumiem gdyż sam go nie pisałem :P
Potrzebuję obsłużyć klawiaturę 5x5 ale z braku wiedzy i nie zrozumienia kodu podanych przez innych postanowiłem od podstaw rozpracować taką klawiaturę.
Na płytce stykowej zmontowałem sobie taką klawiaturkę 3x3 w celu edukacyjnym.

Trochę poczytałem na forum, no i samą zasadę działania już rozumiem. Dużo wyjaśniła ta oto animacja:
https://obrazkiforum.atnel.pl/853/93247a ... 9b99b2.gif

Z programowaniem u mnie no nie jest idealnie, więc postanowiłem napisać kod na piechotę tak abym ja go rozumiał :)
I stworzyłem taki krótki kod, pokazujący samą sekwencję. Proszę o opinię czy ma on rację bytu, czyli rozbudowując go będzie on działał. Wszelkie sugestie mile widziane :)

Dla klawiatury 3x3 sprawdzenie jednej z kolumn.


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


------------------------ [ Dodano po: 10 minutach ]

No i jeszcze trzeba dodać jakieś czasy między wykonywaniem się zmiany stanu kolumny a sprawdzeniem wiersza.



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: 3 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 7 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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO