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