-
Notifications
You must be signed in to change notification settings - Fork 174
Description
if DIODE_DIRECTION == COL2ROW
define writeRow(r) digitalWrite(r,LOW)
define modeCol(c) pinMode(c, INPUT_PULLUP)
ifdef NRF52840_XXAA
define gpioIn (((uint64_t)(NRF_P1->IN)^0xffffffff)<<32)|(NRF_P0->IN)^0xffffffff
else
define gpioIn (NRF_GPIO->IN)^0xffffffff
endif
else
define writeRow(r) digitalWrite(r,HIGH)
define modeCol(c) pinMode(c, INPUT_PULLDOWN)
ifdef NRF52840_XXAA
define gpioIn (((uint64_t)NRF_P1->IN)<<32)|(NRF_P0->IN)
else
define gpioIn NRF_GPIO->IN
endif
endif
ifdef NRF52840_XXAA
define PINDATATYPE uint64_t
else
define PINDATATYPE uint32_t
endif
THIS FUNCTION TAKES CARE OF SCANNING THE MATRIX AS WELL AS DEBOUNCING THE KEY PRESSES
IF YOU ARE USING A DIFFERENT METHOD TO READ/WRITE TO GPIOS (SUCH AS SHIFT REGISTERS OR GPIO EXPANDERS), YOU WILL
NEED TO RE-WORK THIS ROUTINE. IDEALLY WE SHOULD HAVE THIS AS A COMPILE-TIME OPTION TO SWITCH BETWEEN ROUTINES.
Line: 12
BlueMicro_BLE//firmware/firmware_loop.cpp
Lines 9 to 19 in 60e8877
| // Keyboard Scanning | |
| /**************************************************************************************************************************/ | |
| //todo get scanning code into separate module | |
| //todo get generic code scanning module for non-nrf52 boards. | |
| #if DIODE_DIRECTION == COL2ROW | |
| #define writeRow(r) digitalWrite(r,LOW) | |
| #define modeCol(c) pinMode(c, INPUT_PULLUP) | |
| #ifdef NRF52840_XXAA | |
| #define gpioIn (((uint64_t)(NRF_P1->IN)^0xffffffff)<<32)|(NRF_P0->IN)^0xffffffff | |
| #else | |
| #define gpioIn (NRF_GPIO->IN)^0xffffffff |