scan klavesnice

Wek wek
Středa Březen 17 12:10:27 CET 2004


Rieseni je niekolko.
Predovsetkym si treba uvedomit, ze u obycejnej matice (t.j. len spinace pospajane jednym oncom do riadkov a druhym do stlpcov) nie
je vo vseobecnosti mozne spravne vyhodnotit stlacenie viacerych tlacitok naraz. Niektore specialne pripady idu, ale neda sa na to
spolahnut vzdy. T. j ak chcete mat 32 nezavislych vstupov, musite mat na KAZDOM spinaci seriovo diodu.
Ak nie, pravdepodobne Vam staci mat vyhodnotene naraz len 1 tlacitko, t.j. v pripade, ze ich je stlacenych viac, tak prve, na ktore
sa narazi.
V dalsom predpokladam prave tento stav.
Elegantne riesenie je rutina, ktora nacita vsetkych 4x8 bitov a rovno ich zdekoduje na 32+1 stavov. (V dalsom mozete potom na rutiny
pre jednotlive klavesy skakat cez tabulku).
Potom staci tuto rutinu opakovane volat v rozmedzi niekolko ms kym sa vysledok niekolkokrat nezopakuje (dvakrat nie vzdy staci na
spolahlivu detekciu). Spinace su komplikovany mechanicky system, dlzka a charakter zakmitavania zavisi od konkretneho spinaca (inak
je to u membranovej klavesnice, inak u toho isteho s kovovymi "cvakatkami", inak u mikrospinacov a este inak u obycajnych kovovych
kontaktov, zasa inak u jazyckoveho rele atd. atd. atd....) Konkretny priklad z praxe je originalny "BIOS" :-) u ZX Spectrum, ktory
na slovenskom klone Didaktik Gama zakmitaval (povodna klavesnica bola z vodivej gumy, kym ta didaktikacka - nuz neviem, ale boli to
diskretne spinace nevalnej kvality). Preto aj riesenie byve castokrat empiricke - napisem, vyskusam, uvidim.
Dobry trik je mat scanovaciu+dekodovaciu rutinu v pravidelnom preruseni (napr. 10 ms), kde sa elegantne spravi aj debouncing, aj
autorepeat, a vysledok sa moze ukladat do kruhoveho buffra (tak ako u PC).
Ak chcete zmensit procesovu narocnost na dekodovanie, pouzite dekoder - nemusi to byt hned MAXIM, staci 74LS148 (1z8 na binarne3),
tym aj usetrite 5 IO fuzov (a ak chcete usetrit viac, tak na budiacu stranu pouzite 74LS138, to mate maticu 8x8 za 6 IO fuzov).



So zelanim mnozstva uspechov pri klavesnicovani

Jano Waclawek








Další informace o konferenci Hw-list