Bring dactyl/matrix.c in line with quantum/matrix.c (#2613)
* Use the new debounce algorithm in dactyl/matrix.c [#2065] This incorporates the fixed/optimized debounce code added to quantum/matrix.c in: *508eddf8ba
*4c6960835c
*32f88c0717
*f403028974
*a06115df19
* 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.
This commit is contained in:
parent
642bf00baf
commit
050c21d35f
4 changed files with 404 additions and 324 deletions
|
@ -30,12 +30,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
#define PRODUCT Dactyl
|
||||
#define DESCRIPTION An ortholinear, split, 3D-curved keyboard with thumb clusters.
|
||||
|
||||
/* key matrix size
|
||||
* At this time, "row" in the dactyl's code actually means "column" on the
|
||||
* physical keyboard. It's confusing. I'm sorry. Blame Jack Humbert :P
|
||||
*/
|
||||
#define MATRIX_ROWS 12
|
||||
#define MATRIX_COLS 6
|
||||
#define DIODE_DIRECTION ROW2COL
|
||||
#define MATRIX_ROWS 6
|
||||
#define MATRIX_COLS 12
|
||||
#define COL_EXPANDED { true, true, true, true, true, true, false, false, false, false, false, false}
|
||||
#define MATRIX_ONBOARD_ROW_PINS { F0, F1, F4, F5, F6, F7 }
|
||||
#define MATRIX_ONBOARD_COL_PINS { 0, 0, 0, 0, 0, 0, B1, B2, B3, D2, D3, C6 }
|
||||
#define EXPANDER_COL_REGISTER 0
|
||||
#define MATRIX_EXPANDER_COL_PINS {0, 1, 2, 3, 4, 5}
|
||||
#define MATRIX_EXPANDER_ROW_PINS {0, 1, 2, 3, 4, 5}
|
||||
|
||||
#define MOUSEKEY_INTERVAL 20
|
||||
#define MOUSEKEY_DELAY 0
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue