parent
ff4a1ae5d2
commit
21665df8eb
@ -0,0 +1,41 @@ |
|||||||
|
# Encoders |
||||||
|
|
||||||
|
Basic encoders are supported by adding this to your `rules.mk`: |
||||||
|
|
||||||
|
ENCODER_ENABLE = yes |
||||||
|
|
||||||
|
and this to your `config.h`: |
||||||
|
|
||||||
|
#define NUMBER_OF_ENCODERS 1 |
||||||
|
#define ENCODERS_PAD_A { B12 } |
||||||
|
#define ENCODERS_PAD_B { B13 } |
||||||
|
|
||||||
|
Each PAD_A/B variable defines an array so multiple encoders can be defined, e.g.: |
||||||
|
|
||||||
|
#define ENCODERS_PAD_A { encoder1a, encoder2a } |
||||||
|
#define ENCODERS_PAD_B { encoder1a, encoder2b } |
||||||
|
|
||||||
|
If your encoder's clockwise directions are incorrect, you can swap the A & B pad definitions. |
||||||
|
|
||||||
|
Additionally, the resolution can be specified in the same file (the default & suggested is 4): |
||||||
|
|
||||||
|
#define ENCODER_RESOLUTION 4 |
||||||
|
|
||||||
|
## Callbacks |
||||||
|
|
||||||
|
The callback functions can be inserted into your `<keyboard>.c`: |
||||||
|
|
||||||
|
void encoder_update_kb(uint8_t index, bool clockwise) { |
||||||
|
encoder_update_user(index, clockwise); |
||||||
|
} |
||||||
|
|
||||||
|
or `keymap.c`: |
||||||
|
|
||||||
|
void encoder_update_user(uint8_t index, bool clockwise) { |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
## Hardware |
||||||
|
|
||||||
|
The A an B lines of the encoders should be wired directly to the MCU, and the C/common lines should be wired to ground. |
Loading…
Reference in new issue