Esempio n. 1
0
/* get all connected columns for one active row */
inline static uint8_t matrix_get_active_columns_by_row(int row)
{
    uint8_t activerows = 0;
    uint8_t activecolumns = 0;
    matrix_activate_row(row, &activerows, &activecolumns);
    return activecolumns;
}
Esempio n. 2
0
/* get all connected columns for one active row */
inline static BYTE matrix_get_active_columns_by_row(int row)
{
    BYTE activerows = 0;
    BYTE activecolumns = 0;
    matrix_activate_row(row, &activerows, &activecolumns);
    return activecolumns;
}
Esempio n. 3
0
static void matrix_activate_column(int column, BYTE *activerows, BYTE *activecolumns)
{
    BYTE msk;
    int m, i;
    if ((1 << column) & ~(*activecolumns)) {
        *activecolumns |= (1 << column);
        msk = rev_keyarr[column];
        /* loop over rows */
        for (m = 0x1, i = 0; i < 8; m <<= 1, i++) {
            /* activate each row connected to the given column */
            if ((msk & m) & ~(*activerows)) {
                matrix_activate_row(i, activerows, activecolumns);
            }
        }
    }
}