[Keyboard] Use new matrix_output_select_delay api (#13861)
* Use new matrix_output_select_delay api * Updated delay to 15 after more spamming
This commit is contained in:
parent
9d88786b6f
commit
8a9688bc64
5 changed files with 20 additions and 10 deletions
|
@ -32,6 +32,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#define USB_POLLING_INTERVAL_MS 1
|
#define USB_POLLING_INTERVAL_MS 1
|
||||||
/* layer optimization */
|
/* layer optimization */
|
||||||
#define LAYER_STATE_8BIT
|
#define LAYER_STATE_8BIT
|
||||||
|
#define MAX_LAYER 2
|
||||||
|
|
||||||
|
//debug scanrate
|
||||||
|
//#define DEBUG_MATRIX_SCAN_RATE
|
||||||
|
//debug scans taking longer than one ms
|
||||||
|
//#define BENCHMARK_MATRIX
|
||||||
|
#define MATRIX_IO_DELAY 15
|
||||||
/*
|
/*
|
||||||
* Keyboard Matrix Assignments
|
* Keyboard Matrix Assignments
|
||||||
*
|
*
|
||||||
|
|
|
@ -28,7 +28,7 @@ extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values
|
||||||
|
|
||||||
// matrix code
|
// matrix code
|
||||||
// super fast read_cols code.
|
// super fast read_cols code.
|
||||||
static matrix_row_t read_cols(void) {
|
static inline matrix_row_t read_cols(void) {
|
||||||
return (PINC & (1 << 6) ? 0 : (1UL << 0)) |
|
return (PINC & (1 << 6) ? 0 : (1UL << 0)) |
|
||||||
(PIND & (1 << 7) ? 0 : (1UL << 1)) |
|
(PIND & (1 << 7) ? 0 : (1UL << 1)) |
|
||||||
(PINE & (1 << 6) ? 0 : (1UL << 2)) |
|
(PINE & (1 << 6) ? 0 : (1UL << 2)) |
|
||||||
|
@ -100,13 +100,17 @@ uint8_t matrix_scan_custom(matrix_row_t current_matrix[]) {
|
||||||
// Set row, read cols
|
// Set row, read cols
|
||||||
for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) {
|
for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) {
|
||||||
select_row(current_row);
|
select_row(current_row);
|
||||||
asm volatile("nop");
|
matrix_output_select_delay();
|
||||||
asm volatile("nop");
|
|
||||||
matrix_row_t cols = read_cols();
|
matrix_row_t cols = read_cols();
|
||||||
changed |= (current_matrix[current_row] != cols);
|
changed |= (current_matrix[current_row] != cols);
|
||||||
current_matrix[current_row] = cols;
|
current_matrix[current_row] = cols;
|
||||||
|
|
||||||
unselect_rows();
|
unselect_rows();
|
||||||
|
//this internally calls matrix_io_delay()
|
||||||
|
matrix_output_unselect_delay();
|
||||||
}
|
}
|
||||||
|
|
||||||
return changed;
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,4 +19,7 @@ The brief list of speedhacks to make this keyboard blazing fast:
|
||||||
3) Eager-per-key Debouncing algorithm (no 5ms delay before message is sent)
|
3) Eager-per-key Debouncing algorithm (no 5ms delay before message is sent)
|
||||||
4) 1000hz polling
|
4) 1000hz polling
|
||||||
|
|
||||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the
|
||||||
|
[make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
|
||||||
|
|
||||||
|
Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||||
|
|
|
@ -25,7 +25,7 @@ SPACE_CADET_ENABLE = no # Unneeded feature.
|
||||||
LAYOUTS = 60_ansi
|
LAYOUTS = 60_ansi
|
||||||
|
|
||||||
# special sauce for this keyboard
|
# special sauce for this keyboard
|
||||||
DEBOUNCE_TYPE = eager_pk # Debounce using eager_pk.
|
DEBOUNCE_TYPE = sym_eager_pk # Debounce using eager_pk.
|
||||||
CUSTOM_MATRIX = lite # Custom matrix that polls at 7000hz instead of a measly 2000hz.
|
CUSTOM_MATRIX = lite # Custom matrix that polls at 7000hz instead of a measly 2000hz.
|
||||||
LTO_ENABLE = yes # smaller binary
|
LTO_ENABLE = yes # smaller binary
|
||||||
SRC += matrix.c
|
SRC += matrix.c
|
||||||
|
|
|
@ -50,13 +50,9 @@ void matrix_scan_user(void) {
|
||||||
|
|
||||||
last_timer = timer;
|
last_timer = timer;
|
||||||
if ((timer % 1000 == 0) && (timer != last_print_out)) {
|
if ((timer % 1000 == 0) && (timer != last_print_out)) {
|
||||||
print("Benchmark:");
|
print("Scans: ");
|
||||||
print("\n");
|
|
||||||
print_dec(timer);
|
|
||||||
print("\n");
|
|
||||||
print_dec(scans);
|
print_dec(scans);
|
||||||
print("\n");
|
print("\n");
|
||||||
print("-------");
|
|
||||||
scans = 0;
|
scans = 0;
|
||||||
last_print_out = timer;
|
last_print_out = timer;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue