/* * matrix.c testing macros * MATRIX_DEBUG_SCAN: Measuring execution time of `matrix_scan()` * MATRIX_DEBUG_DELAY: Observation of delay after `unselect_row()` */ #pragma once #ifndef __ASSEMBLER__ #include static inline void setDebugPinOutput_Low(void) { setPinOutput(MATRIX_DEBUG_PIN); writePinLow(MATRIX_DEBUG_PIN); } #define MATRIX_DEBUG_PIN_INIT() setDebugPinOutput_Low() #ifdef MATRIX_DEBUG_SCAN # define MATRIX_DEBUG_SCAN_START() writePinHigh(MATRIX_DEBUG_PIN) # define MATRIX_DEBUG_SCAN_END() writePinLow(MATRIX_DEBUG_PIN) #else # define MATRIX_DEBUG_SCAN_START() # define MATRIX_DEBUG_SCAN_END() #endif #ifdef MATRIX_DEBUG_DELAY # define MATRIX_DEBUG_DELAY_START() writePinHigh(MATRIX_DEBUG_PIN) # define MATRIX_DEBUG_DELAY_END() writePinLow(MATRIX_DEBUG_PIN) #else # define MATRIX_DEBUG_DELAY_START() # define MATRIX_DEBUG_DELAY_END() #endif #endif // __ASSEMBLER__