[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
 | 
			
		||||
/* layer optimization */
 | 
			
		||||
#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
 | 
			
		||||
 *
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -28,7 +28,7 @@ extern matrix_row_t matrix[MATRIX_ROWS];      // debounced values
 | 
			
		|||
 | 
			
		||||
// matrix 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)) |
 | 
			
		||||
           (PIND & (1 << 7) ? 0 : (1UL << 1)) |
 | 
			
		||||
           (PINE & (1 << 6) ? 0 : (1UL << 2)) |
 | 
			
		||||
| 
						 | 
				
			
			@ -100,13 +100,17 @@ uint8_t matrix_scan_custom(matrix_row_t current_matrix[]) {
 | 
			
		|||
    // Set row, read cols
 | 
			
		||||
    for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) {
 | 
			
		||||
        select_row(current_row);
 | 
			
		||||
        asm volatile("nop");
 | 
			
		||||
        asm volatile("nop");
 | 
			
		||||
        matrix_output_select_delay();
 | 
			
		||||
 | 
			
		||||
        matrix_row_t cols = read_cols();
 | 
			
		||||
        changed |= (current_matrix[current_row] != cols);
 | 
			
		||||
        current_matrix[current_row] = cols;
 | 
			
		||||
 | 
			
		||||
        unselect_rows();
 | 
			
		||||
        //this internally calls matrix_io_delay()
 | 
			
		||||
        matrix_output_unselect_delay();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    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)
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
# 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.
 | 
			
		||||
LTO_ENABLE = yes            # smaller binary
 | 
			
		||||
SRC += matrix.c
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -50,13 +50,9 @@ void            matrix_scan_user(void) {
 | 
			
		|||
    
 | 
			
		||||
    last_timer = timer;
 | 
			
		||||
    if ((timer % 1000 == 0) && (timer != last_print_out)) {
 | 
			
		||||
        print("Benchmark:");
 | 
			
		||||
        print("\n");
 | 
			
		||||
        print_dec(timer);
 | 
			
		||||
        print("\n");
 | 
			
		||||
        print("Scans: ");
 | 
			
		||||
        print_dec(scans);
 | 
			
		||||
        print("\n");
 | 
			
		||||
        print("-------");
 | 
			
		||||
        scans          = 0;
 | 
			
		||||
        last_print_out = timer;
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue