* Use the new debounce algorithm in dactyl/matrix.c [#2065] This incorporates the fixed/optimized debounce code added to quantum/matrix.c in: * 508eddf8ba8548d3f71e1c09a404839beb49f45c * 4c6960835c0a6e29670dabdc27117d7d3c7f99f5 * 32f88c07173b795c6981c779057dceba00aeb1cb * f4030289744fc6dc82dd85c955070c0845813cc5 * a06115df19a74d39b08758472b221e630c3680d3 * Fix the row/column swap in dactyl [#2065] With a column-driven keyboard, reading from the mcp23081 returns a column-state, which takes some extra work to translate into the row-state used in the actual matrix. The ergodox_ez code sidestepped that problem by calling rows "columns" and columns "rows." With this change, the dactyl now calls rows "rows" and columns "columns." * Cleanup: variable names, documentation [#2065] * Support MATRIX_MASKED in dactyl/matrix.c [#2065] * Only unselect one col in unselect_col [#2065] Bonus: saves one i2c transaction per matrix_scan! * Implement COL2ROW in dactyl/matrix.c [#2065] * Fix a typo in dactyl/matrix.c This entirely doesn't matter. The PORT values are set during init_keyboard and never change. They're repeatedly set to the same thing. These PORT lines shouldn't even exist, but since they do, they should at least look right. * Implement COL_PINS/ROW_PINS for dactyl [#2065] * Rename "mcp23018" to "expander" [#2065] I honestly don't know whether/how well this code works with other I/O expanders, but at least in theory, it should be generic enough to work with others. Given that, the variable names shouldn't refer to a specific model of expander. * Remove matrix_power_up from dactyl/matrix.c [#2065] It's commented out in quantum/matrix.c, and the dactyl has no power up/down behavior beyond being unplugged (which goes to matrix_init), so there's no sense keeping it around. * Only initialize expander_input_mask once [#2065] ...and rename input_mask to expander_input_mask, since now that it isn't scoped to init_expander it isn't clear that it's only for the expander.
		
			
				
	
	
		
			16 lines
		
	
	
		
			843 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			16 lines
		
	
	
		
			843 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #include "dactyl.h"
 | |
| #include "i2cmaster.h"
 | |
| 
 | |
| #ifdef SWAP_HANDS_ENABLE
 | |
| __attribute__ ((weak))
 | |
| // swap-hands action needs a matrix to define the swap
 | |
| const keypos_t hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
 | |
|     {{0,11}, {0,10}, {0,9},  {0,8},  {0,7},  {0,6},     {0,5},  {0,4},  {0,3},  {0,2},  {0,1},  {0,0}},
 | |
|     {{1,11}, {1,11}, {1,9},  {1,8},  {1,7},  {1,6},     {1,5},  {1,4},  {1,3},  {1,2},  {1,1},  {1,0}},
 | |
|     {{2,11}, {2,12}, {2,9},  {2,8},  {2,7},  {2,6},     {2,5},  {2,4},  {2,3},  {2,2},  {2,1},  {2,0}},
 | |
|     {{3,11}, {3,13}, {3,9},  {3,8},  {3,7},  {3,6},     {3,5},  {3,4},  {3,3},  {3,2},  {3,1},  {3,0}},
 | |
|     {{4,11}, {4,14}, {4,9},  {4,8},  {4,7},  {4,6},     {4,5},  {4,4},  {4,3},  {4,2},  {4,1},  {4,0}},
 | |
|     {{5,11}, {5,15}, {5,9},  {5,8},  {5,7},  {5,6},     {5,5},  {5,4},  {5,3},  {5,2},  {5,1},  {5,0}},
 | |
| };
 | |
| #endif
 |