Keresés

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

  • Domonkos

    addikt

    válasz Domonkos #41 üzenetére

    Yes!

    A tegnapi kod megelolegezte a select_row() es a read_keys() helyes mukodeset a sajat helyes mukodesehez. Ma ezek kozul kellene egyet megirnunk. Kis szerencsevel ezek is egyszeruek lesznek.
    A sor kivalasztasat implementalhatjuk mondjuk igy:

    static void
    select_row(const uint8_t row)
    {
    uint8_t d = PORTD;

    d &= 0b11110000;
    d |= row;
    PORTD = d;
    }

    A row valtozo a read_keyboard() fuggvenybol jon. Ez a Teensy-n a jelenlegi setup-ban egy kettes komplemens abrazolasu szam a [0, N_ROWS) tartomanybol. Es ez pont alkalmassa teszi arra, hogy egybol a multiplexer inputjaira irjuk. :))
    A fenti kod azert ennyire egyszeru, mert az inputok azok a mikrokontroller ugyanazon portjanak 4 egymas melletti labara vannak kotve. Ez egy nagyon kedves gesztus volt a hardver eredeti tervezojetol. Innen is koszi! :R

    Ha az elrendezes egy kicsit kuszabb volna, akkor a biteket egyenkent kellene ide-oda irjuk. Ami meg szinten nem a vilag veget jelentene, de a kodot is egy kicsit osszekuszalna.

    Kis erdkesseg:
    A 0-13 tartomanyhoz egyebkent talalhato egy nagyon jo Gray szekvencia. Szoval ha valaki egy kicsit szerencsetlenebb labkiosztassal talalja magat szemben - Professional 2 - akkor ajanlom ennek a hasznalatat. - viszont mivel ez a blog a DH200-rol szol, igy annak az algoritmusnak az implementalasa az olvaso feladata marad. ;)

  • -igu-

    veterán

    válasz Domonkos #41 üzenetére

    ez az 1000-es érték nekem is szinte mindig a biztonsági zónát jelenti, bár nálam tényleges, fizikai sebesség
    ha ezt választom, nagy baj nem lehet :DDD

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

Hirdetés