mirror of
https://github.com/Keychron/qmk_firmware.git
synced 2024-12-28 12:09:16 +06:00
28929ad017
* 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.
88 lines
3.4 KiB
Makefile
88 lines
3.4 KiB
Makefile
|
|
# MCU name
|
|
#MCU = at90usb1286
|
|
MCU = atmega32u4
|
|
|
|
# Processor frequency.
|
|
# This will define a symbol, F_CPU, in all source code files equal to the
|
|
# processor frequency in Hz. You can then use this symbol in your source code to
|
|
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
|
|
# automatically to create a 32-bit value in your source code.
|
|
#
|
|
# This will be an integer division of F_USB below, as it is sourced by
|
|
# F_USB after it has run through any CPU prescalers. Note that this value
|
|
# does not *change* the processor frequency - it should merely be updated to
|
|
# reflect the processor speed set externally so that the code can use accurate
|
|
# software delays.
|
|
F_CPU = 16000000
|
|
|
|
|
|
#
|
|
# LUFA specific
|
|
#
|
|
# Target architecture (see library "Board Types" documentation).
|
|
ARCH = AVR8
|
|
|
|
# Input clock frequency.
|
|
# This will define a symbol, F_USB, in all source code files equal to the
|
|
# input clock frequency (before any prescaling is performed) in Hz. This value may
|
|
# differ from F_CPU if prescaling is used on the latter, and is required as the
|
|
# raw input clock is fed directly to the PLL sections of the AVR for high speed
|
|
# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
|
|
# at the end, this will be done automatically to create a 32-bit value in your
|
|
# source code.
|
|
#
|
|
# If no clock division is performed on the input clock inside the AVR (via the
|
|
# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
|
|
F_USB = $(F_CPU)
|
|
|
|
# Interrupt driven control endpoint task(+60)
|
|
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
|
|
|
|
|
|
# Bootloader selection
|
|
# Teensy halfkay
|
|
# Pro Micro caterina
|
|
# Atmel DFU atmel-dfu
|
|
# LUFA DFU lufa-dfu
|
|
# QMK DFU qmk-dfu
|
|
# atmega32a bootloadHID
|
|
BOOTLOADER = atmel-dfu
|
|
|
|
|
|
# If you don't know the bootloader type, then you can specify the
|
|
# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
|
|
# Teensy halfKay 512
|
|
# Teensy++ halfKay 1024
|
|
# Atmel DFU loader 4096
|
|
# LUFA bootloader 4096
|
|
# USBaspLoader 2048
|
|
# OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
|
|
|
|
|
# Build Options
|
|
# change yes to no to disable
|
|
#
|
|
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
|
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
|
|
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
|
CONSOLE_ENABLE = no # Console for debug(+400)
|
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
|
NKRO_ENABLE = no # USB Nkey Rollover
|
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
|
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
|
MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
|
|
UNICODE_ENABLE = no # Unicode
|
|
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
|
AUDIO_ENABLE = no # Audio output on port C6
|
|
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
|
|
HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
|
|
|
|
DEBUG_ENABLE = no
|
|
CUSTOM_MATRIX = no # Use custom matrix code
|
|
SPLIT_KEYBOARD = yes # Use shared split_common code
|
|
|