ATNEL tech-forum
https://forum.atnel.pl/

Obsługa klawiatury 4x4
https://forum.atnel.pl/topic20109.html
Strona 1 z 1

Autor:  piceropc [ 30 sty 2018, o 00:43 ]
Tytuł:  Obsługa klawiatury 4x4

Cześć

Dopiero zaczynam działać z AVR'ami i chciałem poddać pod ocenę procedurę obsługi klawiatury matrycowej 4x4.
Wiedzę zaczerpnąłem z artykułu dotyczącego obsługi klawiszy: http://mirekk36.blogspot.com/2012/10/ob ... a-cd3.html
Wykorzystałem część rozwiązań jak możliwość przekazywania funkcji do procedury bazowanie na timerach programowych oraz nazewnictwo części zmiennych. Całkowicie nowa jest struktura procedury z poniższymi właściwościami:

- Eliminacja drgań styków przy naciśnięciu i zwolnieniu klawisza
- Nie reagowanie w przypadku wystąpienia szpilkowych zakłóceń na pinach klawiatury
- Niezależny przydział każdej linii klawiatury do dowolnego pinu w dowolnym porcie
- Auto powtarzanie znaków przy długim naciśnięciu - ustalanie zwłoki do powtarzania oraz okresu pomiędzy powtórzeniami.
- Procedura nieblokująca oparta na znaczniku "klock" i poleceniu Switch symulująca automat stanowy.
- Przekazywanie znaku do bufora. W przypadku nie odczytania z bufora znaku procedura nie nadpisuje go blokując odczyt kolejnych znaków.
- Zabezpieczenie kontrolera przed zwarciem pinów przy jednoczesnym naciśnięciu kilku klawiszy przez odłączanie nieskanowanych kolumn poprzez Hi-Z

Wymaga podciągnięcia 4 linii wejściowych do Vcc poprzez rezystory - w moim przypadku 33kOhm do linii PD4-PD7.
Wyeksportowana procedura z Eclipsa:
Załącznik:
KeyPad4x4_MultiPort.zip


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

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/