AVR -prellmentesites (szoftware problema)
Moczik Gabor
pm at progzmaster.hu
Thu May 10 16:42:20 CEST 2007
Huszti Andras wrote:
> En azt szoktam csinali, hogy adott idonkent egy byteot siftelek balra es
> beirom a nulladik helyre a port allapotat. Ha 0xFF vagy 0x00 az erteke
> akkor az valos gombertek. Erre szoktam epiteni nehany bit-et:
> - gomb_down (ha 1 akkor le van nyomva a gomb)
> - gomb_up (ha 1 akkor nincs lenyomva a gomb)
> - gomb_negedge (le lett nyomva a gomb)
> - gomb_posedge (fel lett engedve a gomb)
> - gomb_pressed (gomb megnyomasat jelenti, negedge es posedge)
>
> Ha fel lett dolgozva a gomblenyomas akkor torlom a biteket. A dolog
> azert jo mert kulonfele gomblenyomas letezik igy. Meg lehet a bitek
> alapjan kulonboztetni olyan gomblenyomast ahol a negedge elre tortenik
> 1X egy akcio vagy negedge folyamatosan csinalja amig a gomb lent van.
> Illetve lehet erre epiteni hosszu gomblenyomast esetleg dupla
> kattintast. De ez mar a programozotol fugg.
En ugy szoktam csinalni, hogy tobbnyire 30..100Hz koruli ciklus idovel
pollingolom a bill. matrixot (ez a ciklusido automatikusan megoldja a
prellmentesites kerdeskort is), osszehasonlitom a kapott adatokat az
elozoleg beolvasottal, es ha van valami elteres, akkor beirom egy par
byte-os korforgasos bill pufferbe (ami mar nem bitmapped, hanem a gomb
sorszamat tarolja).
Ha lenyomnak egy gombot, nullazodik egy szamlalo, ami ha ezutan tovabb
nyomjak a gombot, minden ciklusban inkrementalodik. A gomb elengedesekor az
ertek megmarad. Ebbol tudhato elengedes utan, vagy akar real-time is, hogy
miota van lenyomva.
Ezt ket celra szoktam felhasznalni:
- funkcioja legyen a hosszu gombnyomasnak
- ismetles (pl. fe/le/jobbra/balra gombokhoz hasznos)
Hasznalok egy bitmaszkot, ami megmondja, hogy melyik billentyu ismeteljen.
Ha olyan gombot nyomnak aminel engedelyezve van, es mar key_repeat_delay
ideje nyomjak, akkor a kesobbiekben key_repeat_rate ciklusonkent ujra
berakja a kodjat a bill pufferbe.
Teljesen hasonlo a PC bill mukodesehez, tok jol mukodik...
--
((( Móczik Gábor )))--((( pm -> @ -> progzmaster -> . -> hu )))
((( Skype: moczik )))--((( Website: http://www.progzmaster.hu )))
More information about the Elektro
mailing list