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



Teraz jest 25 maja 2018, o 06:17


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 1 ] 
Autor Wiadomość
PostNapisane: 30 sty 2018, o 00:43 
Offline
Nowy

Dołączył(a): 30 wrz 2017
Posty: 1
Pomógł: 0

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.


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.



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

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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO