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.

87 lines
3.4 KiB

Simplify split_common Code significantly (#4772) * Eliminate separate slave loop Both master and slave run the standard keyboard_task main loop now. * Refactor i2c/serial specific code Simplify some of the preprocessor mess by using common function names. * Fix missing #endif * Move direct pin mapping support from miniaxe to split_common For boards with more pins than sense--sorry, switches. * Reordering and reformatting only * Don't run matrix_scan_quantum on slave side * Clean up the offset/slaveOffset calculations * Cut undebounced matrix size in half * Refactor debouncing * Minor fixups * Split split_common transport and debounce code into their own files Can now be replaced with custom versions per keyboard using CUSTOM_TRANSPORT = yes and CUSTOM_DEBOUNCE = yes * Refactor debounce for non-split keyboards too * Update handwired/xealous to build using new split_common * Fix debounce breaking basic test * Dodgy method to allow a split kb to only include one of i2c/serial SPLIT_TRANSPORT = serial or SPLIT_TRANSPORT = i2c will include only that driver code in the binary. SPLIT_TRANSPORT = custom (or anything else) will include neither, the keyboard must supply it's own code if SPLIT_TRANSPORT is not defined then the original behaviour (include both avr i2c and serial code) is maintained. This could be better but it would require explicitly updating all the existing split keyboards. * Enable LTO to get lets_split/sockets under the line * Add docs for SPLIT_TRANSPORT, CUSTOM_MATRIX, CUSTOM_DEBOUNCE * Remove avr-specific sei() from split matrix_setup Not needed now that slave doesn't have a separate main loop. Both sides (on avr) call sei() in lufa's main() after exiting keyboard_setup(). * Fix QUANTUM_LIB_SRC references and simplify SPLIT_TRANSPORT. * Add comments and fix formatting.
5 years ago
  1. # MCU name
  2. #MCU = at90usb1286
  3. MCU = atmega32u4
  4. # Processor frequency.
  5. # This will define a symbol, F_CPU, in all source code files equal to the
  6. # processor frequency in Hz. You can then use this symbol in your source code to
  7. # calculate timings. Do NOT tack on a 'UL' at the end, this will be done
  8. # automatically to create a 32-bit value in your source code.
  9. #
  10. # This will be an integer division of F_USB below, as it is sourced by
  11. # F_USB after it has run through any CPU prescalers. Note that this value
  12. # does not *change* the processor frequency - it should merely be updated to
  13. # reflect the processor speed set externally so that the code can use accurate
  14. # software delays.
  15. F_CPU = 16000000
  16. #
  17. # LUFA specific
  18. #
  19. # Target architecture (see library "Board Types" documentation).
  20. ARCH = AVR8
  21. # Input clock frequency.
  22. # This will define a symbol, F_USB, in all source code files equal to the
  23. # input clock frequency (before any prescaling is performed) in Hz. This value may
  24. # differ from F_CPU if prescaling is used on the latter, and is required as the
  25. # raw input clock is fed directly to the PLL sections of the AVR for high speed
  26. # clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
  27. # at the end, this will be done automatically to create a 32-bit value in your
  28. # source code.
  29. #
  30. # If no clock division is performed on the input clock inside the AVR (via the
  31. # CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
  32. F_USB = $(F_CPU)
  33. # Interrupt driven control endpoint task(+60)
  34. OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
  35. # Bootloader selection
  36. # Teensy halfkay
  37. # Pro Micro caterina
  38. # Atmel DFU atmel-dfu
  39. # LUFA DFU lufa-dfu
  40. # QMK DFU qmk-dfu
  41. # atmega32a bootloadHID
  42. BOOTLOADER = atmel-dfu
  43. # If you don't know the bootloader type, then you can specify the
  44. # Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
  45. # Teensy halfKay 512
  46. # Teensy++ halfKay 1024
  47. # Atmel DFU loader 4096
  48. # LUFA bootloader 4096
  49. # USBaspLoader 2048
  50. # OPT_DEFS += -DBOOTLOADER_SIZE=4096
  51. # Build Options
  52. # change yes to no to disable
  53. #
  54. BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
  55. MOUSEKEY_ENABLE = no # Mouse keys(+4700)
  56. EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
  57. CONSOLE_ENABLE = no # Console for debug(+400)
  58. COMMAND_ENABLE = no # Commands for debug and configuration
  59. # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
  60. SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
  61. # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
  62. NKRO_ENABLE = no # USB Nkey Rollover
  63. BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
  64. RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
  65. MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
  66. UNICODE_ENABLE = no # Unicode
  67. BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
  68. AUDIO_ENABLE = no # Audio output on port C6
  69. FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
  70. HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
  71. DEBUG_ENABLE = no
  72. CUSTOM_MATRIX = no # Use custom matrix code
  73. SPLIT_KEYBOARD = yes # Use shared split_common code