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