/* Set 0 if debouncing isn't needed */
-#ifndef DEBOUNCING_DELAY
-# define DEBOUNCING_DELAY 5
+#ifndef DEBOUNCE
+# define DEBOUNCE 5
#endif
#define COL_SHIFTER ((uint32_t)1)
static void unselect_cols(void);
static void select_col(uint8_t col);
+__attribute__ ((weak))
+void matrix_init_user(void) {}
+
+__attribute__ ((weak))
+void matrix_scan_user(void) {}
+
+__attribute__ ((weak))
+void matrix_init_kb(void) {
+ matrix_init_user();
+}
+
+__attribute__ ((weak))
+void matrix_scan_kb(void) {
+ matrix_scan_user();
+}
+
inline
uint8_t matrix_rows(void) {
return MATRIX_ROWS;
}
}
- if (debouncing && (timer_elapsed(debouncing_time) > DEBOUNCING_DELAY)) {
+ if (debouncing && (timer_elapsed(debouncing_time) > DEBOUNCE)) {
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
matrix[i] = matrix_debouncing[i];
}
inline
bool matrix_is_on(uint8_t row, uint8_t col)
{
- return (matrix[row] & ((matrix_row_t)1<col));
+ return (matrix[row] & ((matrix_row_t)1<<col));
}
inline
static void unselect_cols(void) {
DDRB |= (1<<5) | (1<<6) | (1<<0) | (1<<7) | (1<<4); // OUT
PORTB &= ~((1<<5) | (1<<6) | (1<<0) | (1<<7) | (1<<4)); // LO
-
+
DDRD |= (1<<4) | (1<<6) | (1<<7); // OUT
PORTD &= ~((1<<4) | (1<<6) | (1<<7)); // LO
-
+
DDRE |= (1<<6); // OUT
PORTE &= ~((1<<6)); // LO
-
+
DDRF |= (1<<0) | (1<<1); // OUT
PORTF &= ~((1<<0) | (1<<1)); // LO
-
+
DDRC |= (1<<7) | (1<<6); // OUT
PORTC &= ~((1<<7) | (1<<6)); // LO
}