Sfoglia il codice sorgente

[Keyboard] Use new matrix_output_select_delay api (#13861)

* Use new matrix_output_select_delay api

* Updated delay to 15 after more spamming
Alex Ong 3 anni fa
parent
commit
8a9688bc64

+ 7 - 0
keyboards/handwired/xealousbrown/config.h

@@ -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
  *

+ 7 - 3
keyboards/handwired/xealousbrown/matrix.c

@@ -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;
 }
+

+ 4 - 1
keyboards/handwired/xealousbrown/readme.md

@@ -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).

+ 1 - 1
keyboards/handwired/xealousbrown/rules.mk

@@ -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

+ 1 - 5
keyboards/handwired/xealousbrown/xealousbrown.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;
     }