You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
1.0 KiB

  1. # Encoders
  2. Basic encoders are supported by adding this to your `rules.mk`:
  3. ENCODER_ENABLE = yes
  4. and this to your `config.h`:
  5. #define NUMBER_OF_ENCODERS 1
  6. #define ENCODERS_PAD_A { B12 }
  7. #define ENCODERS_PAD_B { B13 }
  8. Each PAD_A/B variable defines an array so multiple encoders can be defined, e.g.:
  9. #define ENCODERS_PAD_A { encoder1a, encoder2a }
  10. #define ENCODERS_PAD_B { encoder1a, encoder2b }
  11. If your encoder's clockwise directions are incorrect, you can swap the A & B pad definitions.
  12. Additionally, the resolution can be specified in the same file (the default & suggested is 4):
  13. #define ENCODER_RESOLUTION 4
  14. ## Callbacks
  15. The callback functions can be inserted into your `<keyboard>.c`:
  16. void encoder_update_kb(uint8_t index, bool clockwise) {
  17. encoder_update_user(index, clockwise);
  18. }
  19. or `keymap.c`:
  20. void encoder_update_user(uint8_t index, bool clockwise) {
  21. }
  22. ## Hardware
  23. 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.