(no subject)

Kis Norbert norbi at kzs.hu
Thu Nov 25 17:39:31 CET 1999


Szia!

>A kovetkezo apro kerdesem lenne: mikrokontrolleres rendszerekben hogyan
>oldjak meg a nyomogombok pergesmentesiteset?
>Konkretan egy 3x4-es matrix elrendezesu billentyuzetrol van szo, mint pl.
>egy taviranyiton.
>Valamilyen szoftveres megoldas erdekelne.

Az oramban pl. a kovetkezot csinaltam:
Minden multiplex ciklus alatt egyuttal mintaveteleztem a portot is.
Ha az ertek 0-tol eltero, akkor meghivtam a gombot beolvaso rutint.
Itt raolvastam a gombra N-szer (nalam jo vacak volt a kapcsolo, ugyhogy
80-szor...)
Ha az olvasas alatt a gomb erteke megvaltozott, ujrakezdtem N-szer olvasni.
(Termeszetesen ha valtozott, akkor a korabbi N-szeres ciklusbol kiugrottam,
mivel
mar ugysincs ertelme.) Ha az N-olvasas alatt a hibaflag nem billent be,
(azaz
nem volt prell...) Akkor azt mondta a rutin, hogy tovabbmegy. Jott a kezelo
rutin,
majd az elendegesre varakozo, ami eppen az elobbi forditottja. Nem a
legegyszerubben
csinaltam tudom, viszont remekul bevalt. Nalam 3-gombbal mindent meg
lehetett oldani,
igy nem kellett a multiplex taszt. Viszont az se lett volna veszelyes
szerintem.
Pl.: A sorcimekre adott valamennyi bitet felkapod 1-be. Az oszlopcimek felol
lehuzo elle-
nallasokat raksz GND-re, es a fenti modon figyeled, mikor olvasol 0-tol
eltero erteket vissza.
Ha az ertek stabil, akkor jon az N-es ciklus, ameddig az oszlopadat
valtozik.
Mire ebbol kilepsz, mar nincs prell sehol! :-) Ezutan 1-esevel a sorcimeken
elkezdhetsz shiftelni egy bitet, mikozben olvasod, hogy mi tortenik az
oszlopcimeken. Ha van valami, akkor
eltarolod a ket adatot, ami egyertelmuen azonositja a billentyudet.
(celszeruen ugy csinalhatod, hogy az also felen a bajtnak fut a szamlalo, a
felsobe meg egyszeruen beirod az oszlopcimet, mert igy gyorsan, konnyen
csinalhatsz ugrotablat a funkciokhoz. :-) )
Ezutan RETLW-be beteszed az ugrasi cimet, a hely pedig reprezentalja a
billentyukodot, s mar
kesz is vagy... (Persze ez utobbi PIC-re igaz, mashol mas modi jarja,
azonban az elv mit sem valtozik. :-) )

Tobb gomb egyuttes figyelese kisse bonyolultabb, ekkor vegig kell teljesen
shiftelni mindig, es a prell-figyelesre visszaugrani az olvasas utan. Ha
ket, vagy tobb ilyen olvasas adata megegyezik, akkor az biztoztosan jo lesz
mar.

Meg egy aprosag:
Legtobbet a folias taszt prellezik, azutan mikrokapcsolo, illetve a
melyhuzott, bepattano lemezek, s vegul a gumis taszt. (Ez utobbi volt nekem
a mechanikusak kozul a legjobb.)

Hall, opto, induktiv, kapacitiv, szenzoros csodakkal nincs ilyen gond, de
gondolom neked gumis van, ha mar a taviranyitot emlitetted.

Udvozlettel:
		Norbi.




More information about the Elektro mailing list