Új hozzászólás Aktív témák

  • Domonkos

    addikt

    válasz Domonkos #54 üzenetére

    Kapizsgaljatok mar, nem? :D

    Ami "ki fog menni a droton", az a lenyomott billentyuknek megfeleltetett karakter kodok (USB- es billentyuzetes-lingoban scan code). Azt hogy melyik billentyu tenylegesen melyik karaktert fogja utni, azt mi hatarozhatjuk meg.
    En ezt a kovetkezo implementaciot valasztottam:

    static kc_t
    get_keycode(const kp_t kp, const bool press)
    {
    (void)press;
    return pgm_read_byte(&keymap[kp]);
    }

    A kod maga nagyon egyszeru, lenyegeben csak a keymap[] tomb kp-adik elemet adja vissza. Az egyetlen kisebb csavar az egeszben az annyi - mivel a keymap-et hagyomanyosan mindenki statikusra irja az elso firmware-eben, es mi sem teszunk most maskepp - hogy folosleges azt memoriaban tarolni; igy kerhetjuk a forditot, hogy a tombot rakja a programmemoriaba. Viszont mivel a programmemoria kulonbozo cimteret hasznal, igy annak eleresehez egy konverzio szukseges. Ezt a konverziot a pgm_read_byte() vegzi el - ezt a fuggvenyt nem kell nekunk implementalni, az avr-es konyvtarbol ingyen kapjuk.
    De hogy pontosan hogyan kell a keymap[] tombot feltolteni, hogy az egy dvorak kiosztast eredmenyezzen, azt holnap kitalaljuk! :K

Új hozzászólás Aktív témák

Hirdetés