commit
6da0eb2b2b
@ -0,0 +1,221 @@ |
|||||||
|
ifndef VERBOSE |
||||||
|
.SILENT: |
||||||
|
endif |
||||||
|
|
||||||
|
.DEFAULT_GOAL := all
|
||||||
|
|
||||||
|
include common.mk |
||||||
|
|
||||||
|
ifneq ($(SUBPROJECT),) |
||||||
|
TARGET ?= $(KEYBOARD)_$(SUBPROJECT)_$(KEYMAP)
|
||||||
|
KEYBOARD_OUTPUT := $(BUILD_DIR)/obj_$(KEYBOARD)_$(SUBPROJECT)
|
||||||
|
else |
||||||
|
TARGET ?= $(KEYBOARD)_$(KEYMAP)
|
||||||
|
KEYBOARD_OUTPUT := $(BUILD_DIR)/obj_$(KEYBOARD)
|
||||||
|
endif |
||||||
|
|
||||||
|
# Force expansion
|
||||||
|
TARGET := $(TARGET)
|
||||||
|
|
||||||
|
|
||||||
|
MASTER ?= left
|
||||||
|
ifdef master |
||||||
|
MASTER = $(master)
|
||||||
|
endif |
||||||
|
|
||||||
|
ifeq ($(MASTER),right)
|
||||||
|
OPT_DEFS += -DMASTER_IS_ON_RIGHT
|
||||||
|
else
|
||||||
|
ifneq ($(MASTER),left)
|
||||||
|
$(error MASTER does not have a valid value(left/right)) |
||||||
|
endif
|
||||||
|
endif |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
KEYBOARD_PATH := keyboards/$(KEYBOARD)
|
||||||
|
KEYBOARD_C := $(KEYBOARD_PATH)/$(KEYBOARD).c
|
||||||
|
|
||||||
|
ifneq ("$(wildcard $(KEYBOARD_C))","") |
||||||
|
include $(KEYBOARD_PATH)/rules.mk
|
||||||
|
else
|
||||||
|
$(error "$(KEYBOARD_C)" does not exist)
|
||||||
|
endif |
||||||
|
|
||||||
|
|
||||||
|
ifneq ($(SUBPROJECT),) |
||||||
|
SUBPROJECT_PATH := keyboards/$(KEYBOARD)/$(SUBPROJECT)
|
||||||
|
SUBPROJECT_C := $(SUBPROJECT_PATH)/$(SUBPROJECT).c
|
||||||
|
ifneq ("$(wildcard $(SUBPROJECT_C))","")
|
||||||
|
OPT_DEFS += -DSUBPROJECT_$(SUBPROJECT)
|
||||||
|
include $(SUBPROJECT_PATH)/rules.mk
|
||||||
|
else
|
||||||
|
$(error "$(SUBPROJECT_PATH)/$(SUBPROJECT).c" does not exist)
|
||||||
|
endif
|
||||||
|
endif |
||||||
|
|
||||||
|
# We can assume a ChibiOS target When MCU_FAMILY is defined, since it's not used for LUFA
|
||||||
|
ifdef MCU_FAMILY |
||||||
|
PLATFORM=CHIBIOS
|
||||||
|
else |
||||||
|
PLATFORM=AVR
|
||||||
|
endif |
||||||
|
|
||||||
|
ifeq ($(PLATFORM),CHIBIOS) |
||||||
|
include $(TMK_PATH)/protocol/chibios.mk
|
||||||
|
include $(TMK_PATH)/chibios.mk
|
||||||
|
OPT_OS = chibios
|
||||||
|
ifneq ("$(wildcard $(SUBPROJECT_PATH)/bootloader_defs.h)","")
|
||||||
|
OPT_DEFS += -include $(SUBPROJECT_PATH)/bootloader_defs.h
|
||||||
|
else ifneq ("$(wildcard $(SUBPROJECT_PATH)/boards/$(BOARD)/bootloader_defs.h)","")
|
||||||
|
OPT_DEFS += -include $(SUBPROJECT_PATH)/boards/$(BOARD)/bootloader_defs.h
|
||||||
|
else ifneq ("$(wildcard $(KEYBOARD_PATH)/bootloader_defs.h)","")
|
||||||
|
OPT_DEFS += -include $(KEYBOARD_PATH)/bootloader_defs.h
|
||||||
|
else ifneq ("$(wildcard $(KEYBOARD_PATH)/boards/$(BOARD)/bootloader_defs.h)","")
|
||||||
|
OPT_DEFS += -include $(KEYBOARD_PATH)/boards/$(BOARD)/bootloader_defs.h
|
||||||
|
endif
|
||||||
|
endif |
||||||
|
|
||||||
|
CONFIG_H = $(KEYBOARD_PATH)/config.h
|
||||||
|
ifneq ($(SUBPROJECT),) |
||||||
|
ifneq ("$(wildcard $(SUBPROJECT_C))","")
|
||||||
|
CONFIG_H = $(SUBPROJECT_PATH)/config.h
|
||||||
|
endif
|
||||||
|
endif |
||||||
|
|
||||||
|
# Save the defines and includes here, so we don't include any keymap specific ones
|
||||||
|
PROJECT_DEFS := $(OPT_DEFS)
|
||||||
|
PROJECT_INC := $(VPATH) $(EXTRAINCDIRS) $(SUBPROJECT_PATH) $(KEYBOARD_PATH)
|
||||||
|
PROJECT_CONFIG := $(CONFIG_H)
|
||||||
|
|
||||||
|
MAIN_KEYMAP_PATH := $(KEYBOARD_PATH)/keymaps/$(KEYMAP)
|
||||||
|
MAIN_KEYMAP_C := $(MAIN_KEYMAP_PATH)/keymap.c
|
||||||
|
SUBPROJ_KEYMAP_PATH := $(SUBPROJECT_PATH)/keymaps/$(KEYMAP)
|
||||||
|
SUBPROJ_KEYMAP_C := $(SUBPROJ_KEYMAP_PATH)/keymap.c
|
||||||
|
ifneq ("$(wildcard $(SUBPROJ_KEYMAP_C))","") |
||||||
|
-include $(SUBPROJ_KEYMAP_PATH)/Makefile
|
||||||
|
KEYMAP_C := $(SUBPROJ_KEYMAP_C)
|
||||||
|
KEYMAP_PATH := $(SUBPROJ_KEYMAP_PATH)
|
||||||
|
else ifneq ("$(wildcard $(MAIN_KEYMAP_C))","") |
||||||
|
-include $(MAIN_KEYMAP_PATH)/Makefile
|
||||||
|
KEYMAP_C := $(MAIN_KEYMAP_C)
|
||||||
|
KEYMAP_PATH := $(MAIN_KEYMAP_PATH)
|
||||||
|
else |
||||||
|
$(error "$(MAIN_KEYMAP_C)/keymap.c" does not exist)
|
||||||
|
endif |
||||||
|
|
||||||
|
|
||||||
|
# Object files directory
|
||||||
|
# To put object files in current directory, use a dot (.), do NOT make
|
||||||
|
# this an empty or blank macro!
|
||||||
|
KEYMAP_OUTPUT := $(BUILD_DIR)/obj_$(TARGET)
|
||||||
|
|
||||||
|
|
||||||
|
ifneq ("$(wildcard $(KEYMAP_PATH)/config.h)","") |
||||||
|
CONFIG_H = $(KEYMAP_PATH)/config.h
|
||||||
|
endif |
||||||
|
|
||||||
|
# # project specific files
|
||||||
|
SRC += $(KEYBOARD_C) \
|
||||||
|
$(KEYMAP_C) \
|
||||||
|
$(QUANTUM_DIR)/quantum.c \
|
||||||
|
$(QUANTUM_DIR)/keymap_common.c \
|
||||||
|
$(QUANTUM_DIR)/keycode_config.c \
|
||||||
|
$(QUANTUM_DIR)/process_keycode/process_leader.c
|
||||||
|
|
||||||
|
ifneq ($(SUBPROJECT),) |
||||||
|
SRC += $(SUBPROJECT_C)
|
||||||
|
endif |
||||||
|
|
||||||
|
ifndef CUSTOM_MATRIX |
||||||
|
SRC += $(QUANTUM_DIR)/matrix.c
|
||||||
|
endif |
||||||
|
|
||||||
|
ifeq ($(strip $(MIDI_ENABLE)), yes) |
||||||
|
OPT_DEFS += -DMIDI_ENABLE
|
||||||
|
SRC += $(QUANTUM_DIR)/process_keycode/process_midi.c
|
||||||
|
endif |
||||||
|
|
||||||
|
ifeq ($(strip $(VIRTSER_ENABLE)), yes) |
||||||
|
OPT_DEFS += -DVIRTSER_ENABLE
|
||||||
|
endif |
||||||
|
|
||||||
|
ifeq ($(strip $(AUDIO_ENABLE)), yes) |
||||||
|
OPT_DEFS += -DAUDIO_ENABLE
|
||||||
|
SRC += $(QUANTUM_DIR)/process_keycode/process_music.c
|
||||||
|
SRC += $(QUANTUM_DIR)/audio/audio.c
|
||||||
|
SRC += $(QUANTUM_DIR)/audio/voices.c
|
||||||
|
SRC += $(QUANTUM_DIR)/audio/luts.c
|
||||||
|
endif |
||||||
|
|
||||||
|
ifeq ($(strip $(UNICODE_ENABLE)), yes) |
||||||
|
OPT_DEFS += -DUNICODE_ENABLE
|
||||||
|
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode.c
|
||||||
|
endif |
||||||
|
|
||||||
|
ifeq ($(strip $(RGBLIGHT_ENABLE)), yes) |
||||||
|
OPT_DEFS += -DRGBLIGHT_ENABLE
|
||||||
|
SRC += $(QUANTUM_DIR)/light_ws2812.c
|
||||||
|
SRC += $(QUANTUM_DIR)/rgblight.c
|
||||||
|
endif |
||||||
|
|
||||||
|
ifeq ($(strip $(TAP_DANCE_ENABLE)), yes) |
||||||
|
OPT_DEFS += -DTAP_DANCE_ENABLE
|
||||||
|
SRC += $(QUANTUM_DIR)/process_keycode/process_tap_dance.c
|
||||||
|
endif |
||||||
|
|
||||||
|
ifeq ($(strip $(SERIAL_LINK_ENABLE)), yes) |
||||||
|
SRC += $(patsubst $(QUANTUM_PATH)/%,%,$(SERIAL_SRC))
|
||||||
|
OPT_DEFS += $(SERIAL_DEFS)
|
||||||
|
VAPTH += $(SERIAL_PATH)
|
||||||
|
endif |
||||||
|
|
||||||
|
# Optimize size but this may cause error "relocation truncated to fit"
|
||||||
|
#EXTRALDFLAGS = -Wl,--relax
|
||||||
|
|
||||||
|
# Search Path
|
||||||
|
VPATH += $(KEYMAP_PATH)
|
||||||
|
ifneq ($(SUBPROJECT),) |
||||||
|
VPATH += $(SUBPROJECT_PATH)
|
||||||
|
endif |
||||||
|
VPATH += $(KEYBOARD_PATH)
|
||||||
|
VPATH += $(COMMON_VPATH)
|
||||||
|
|
||||||
|
|
||||||
|
include $(TMK_PATH)/common.mk |
||||||
|
SRC += $(TMK_COMMON_SRC)
|
||||||
|
OPT_DEFS += $(TMK_COMMON_DEFS)
|
||||||
|
EXTRALDFLAGS += $(TMK_COMMON_LDFLAGS)
|
||||||
|
|
||||||
|
ifeq ($(PLATFORM),AVR) |
||||||
|
include $(TMK_PATH)/protocol/lufa.mk
|
||||||
|
include $(TMK_PATH)/avr.mk
|
||||||
|
endif |
||||||
|
|
||||||
|
ifeq ($(strip $(VISUALIZER_ENABLE)), yes) |
||||||
|
VISUALIZER_DIR = $(QUANTUM_DIR)/visualizer
|
||||||
|
VISUALIZER_PATH = $(QUANTUM_PATH)/visualizer
|
||||||
|
include $(VISUALIZER_PATH)/visualizer.mk
|
||||||
|
endif |
||||||
|
|
||||||
|
OUTPUTS := $(KEYMAP_OUTPUT) $(KEYBOARD_OUTPUT)
|
||||||
|
$(KEYMAP_OUTPUT)_SRC := $(SRC)
|
||||||
|
$(KEYMAP_OUTPUT)_DEFS := $(OPT_DEFS) -DQMK_KEYBOARD=\"$(KEYBOARD)\" -DQMK_KEYMAP=\"$(KEYMAP)\"
|
||||||
|
$(KEYMAP_OUTPUT)_INC := $(VPATH) $(EXTRAINCDIRS)
|
||||||
|
$(KEYMAP_OUTPUT)_CONFIG := $(CONFIG_H)
|
||||||
|
$(KEYBOARD_OUTPUT)_SRC := $(CHIBISRC)
|
||||||
|
$(KEYBOARD_OUTPUT)_DEFS := $(PROJECT_DEFS)
|
||||||
|
$(KEYBOARD_OUTPUT)_INC := $(PROJECT_INC)
|
||||||
|
$(KEYBOARD_OUTPUT)_CONFIG := $(PROJECT_CONFIG)
|
||||||
|
|
||||||
|
# Default target.
|
||||||
|
all: build sizeafter |
||||||
|
|
||||||
|
# Change the build target to build a HEX file or a library.
|
||||||
|
build: elf hex |
||||||
|
#build: elf hex eep lss sym
|
||||||
|
#build: lib
|
||||||
|
|
||||||
|
|
||||||
|
include $(TMK_PATH)/rules.mk |
||||||
|
|
@ -0,0 +1,57 @@ |
|||||||
|
ifndef VERBOSE |
||||||
|
.SILENT: |
||||||
|
endif |
||||||
|
|
||||||
|
.DEFAULT_GOAL := all
|
||||||
|
|
||||||
|
include common.mk |
||||||
|
|
||||||
|
TARGET=test/$(TEST)
|
||||||
|
|
||||||
|
GTEST_OUTPUT = $(BUILD_DIR)/gtest
|
||||||
|
|
||||||
|
TEST_OBJ = $(BUILD_DIR)/test_obj
|
||||||
|
|
||||||
|
OUTPUTS := $(TEST_OBJ)/$(TEST) $(GTEST_OUTPUT)
|
||||||
|
|
||||||
|
GTEST_INC := \
|
||||||
|
$(LIB_PATH)/googletest/googletest/include\
|
||||||
|
$(LIB_PATH)/googletest/googlemock/include\
|
||||||
|
|
||||||
|
GTEST_INTERNAL_INC :=\
|
||||||
|
$(LIB_PATH)/googletest/googletest\
|
||||||
|
$(LIB_PATH)/googletest/googlemock
|
||||||
|
|
||||||
|
$(GTEST_OUTPUT)_SRC :=\
|
||||||
|
googletest/src/gtest-all.cc\
|
||||||
|
googletest/src/gtest_main.cc\
|
||||||
|
googlemock/src/gmock-all.cc
|
||||||
|
|
||||||
|
$(GTEST_OUTPUT)_DEFS :=
|
||||||
|
$(GTEST_OUTPUT)_INC := $(GTEST_INC) $(GTEST_INTERNAL_INC)
|
||||||
|
|
||||||
|
LDFLAGS += -lstdc++ -lpthread -shared-libgcc
|
||||||
|
CREATE_MAP := no
|
||||||
|
|
||||||
|
VPATH +=\
|
||||||
|
$(LIB_PATH)/googletest\
|
||||||
|
$(LIB_PATH)/googlemock
|
||||||
|
|
||||||
|
all: elf |
||||||
|
|
||||||
|
VPATH += $(COMMON_VPATH)
|
||||||
|
|
||||||
|
include $(TMK_PATH)/common.mk |
||||||
|
include $(QUANTUM_PATH)/serial_link/tests/rules.mk |
||||||
|
|
||||||
|
$(TEST_OBJ)/$(TEST)_SRC := $($(TEST)_SRC) |
||||||
|
$(TEST_OBJ)/$(TEST)_INC := $($(TEST)_INC) $(VPATH) $(GTEST_INC) |
||||||
|
$(TEST_OBJ)/$(TEST)_DEFS := $($(TEST)_DEFS) |
||||||
|
|
||||||
|
include $(TMK_PATH)/native.mk |
||||||
|
include $(TMK_PATH)/rules.mk |
||||||
|
|
||||||
|
|
||||||
|
$(shell mkdir -p $(BUILD_DIR)/test 2>/dev/null) |
||||||
|
$(shell mkdir -p $(TEST_OBJ) 2>/dev/null) |
||||||
|
|
@ -0,0 +1,26 @@ |
|||||||
|
include message.mk |
||||||
|
|
||||||
|
# Directory common source files exist
|
||||||
|
TOP_DIR = .
|
||||||
|
TMK_DIR = tmk_core
|
||||||
|
TMK_PATH = $(TOP_DIR)/$(TMK_DIR)
|
||||||
|
LIB_PATH = $(TOP_DIR)/lib
|
||||||
|
|
||||||
|
QUANTUM_DIR = quantum
|
||||||
|
QUANTUM_PATH = $(TOP_DIR)/$(QUANTUM_DIR)
|
||||||
|
|
||||||
|
BUILD_DIR := $(TOP_DIR)/.build
|
||||||
|
|
||||||
|
SERIAL_DIR := $(QUANTUM_DIR)/serial_link
|
||||||
|
SERIAL_PATH := $(QUANTUM_PATH)/serial_link
|
||||||
|
SERIAL_SRC := $(wildcard $(SERIAL_PATH)/protocol/*.c)
|
||||||
|
SERIAL_SRC += $(wildcard $(SERIAL_PATH)/system/*.c)
|
||||||
|
SERIAL_DEFS += -DSERIAL_LINK_ENABLE
|
||||||
|
|
||||||
|
COMMON_VPATH := $(TOP_DIR)
|
||||||
|
COMMON_VPATH += $(TMK_PATH)
|
||||||
|
COMMON_VPATH += $(QUANTUM_PATH)
|
||||||
|
COMMON_VPATH += $(QUANTUM_PATH)/keymap_extras
|
||||||
|
COMMON_VPATH += $(QUANTUM_PATH)/audio
|
||||||
|
COMMON_VPATH += $(QUANTUM_PATH)/process_keycode
|
||||||
|
COMMON_VPATH += $(SERIAL_PATH)
|
@ -1,70 +1,3 @@ |
|||||||
|
ifndef MAKEFILE_INCLUDED |
||||||
|
|
||||||
# Target file name (without extension).
|
|
||||||
|
|
||||||
# project specific files
|
|
||||||
SRC = led.c
|
|
||||||
|
|
||||||
# MCU name
|
|
||||||
MCU = atmega32u2
|
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
|
|
||||||
# Boot Section Size in *bytes*
|
|
||||||
# Teensy halfKay 512
|
|
||||||
# Teensy++ halfKay 1024
|
|
||||||
# Atmel DFU loader 4096
|
|
||||||
# LUFA bootloader 4096
|
|
||||||
# USBaspLoader 2048
|
|
||||||
OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
|
||||||
|
|
||||||
|
|
||||||
# Build Options
|
|
||||||
# comment out to disable the options.
|
|
||||||
#
|
|
||||||
BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
|
|
||||||
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
|
|
||||||
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
|
||||||
CONSOLE_ENABLE ?= yes # Console for debug(+400)
|
|
||||||
COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
|
||||||
#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
|
|
||||||
#NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA
|
|
||||||
|
|
||||||
ifndef QUANTUM_DIR |
|
||||||
include ../../Makefile
|
include ../../Makefile
|
||||||
endif |
endif |
@ -0,0 +1,66 @@ |
|||||||
|
|
||||||
|
|
||||||
|
# Target file name (without extension).
|
||||||
|
|
||||||
|
# project specific files
|
||||||
|
SRC = led.c
|
||||||
|
|
||||||
|
# MCU name
|
||||||
|
MCU = atmega32u2
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
|
||||||
|
# Boot Section Size in *bytes*
|
||||||
|
# Teensy halfKay 512
|
||||||
|
# Teensy++ halfKay 1024
|
||||||
|
# Atmel DFU loader 4096
|
||||||
|
# LUFA bootloader 4096
|
||||||
|
# USBaspLoader 2048
|
||||||
|
OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
||||||
|
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# comment out to disable the options.
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
|
||||||
|
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
|
||||||
|
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
||||||
|
CONSOLE_ENABLE ?= yes # Console for debug(+400)
|
||||||
|
COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
||||||
|
#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
|
||||||
|
#NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA
|
@ -1,70 +1,3 @@ |
|||||||
|
ifndef MAKEFILE_INCLUDED |
||||||
# MCU name
|
|
||||||
#MCU = at90usb1287
|
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
# Boot Section Size in *bytes*
|
|
||||||
# Teensy halfKay 512
|
|
||||||
# Teensy++ halfKay 1024
|
|
||||||
# Atmel DFU loader 4096
|
|
||||||
# LUFA bootloader 4096
|
|
||||||
# USBaspLoader 2048
|
|
||||||
OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
|
||||||
|
|
||||||
|
|
||||||
# Build Options
|
|
||||||
# comment out to disable the options.
|
|
||||||
#
|
|
||||||
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 ?= yes # Console for debug(+400)
|
|
||||||
COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
|
||||||
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
|
||||||
RGBLIGHT_ENABLE ?= yes # Enable keyboard underlight functionality (+4870)
|
|
||||||
BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality (+1150)
|
|
||||||
MIDI_ENABLE ?= no # MIDI controls
|
|
||||||
AUDIO_ENABLE ?= no
|
|
||||||
UNICODE_ENABLE ?= no # Unicode
|
|
||||||
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
|
|
||||||
|
|
||||||
ifndef QUANTUM_DIR |
|
||||||
include ../../Makefile
|
include ../../Makefile
|
||||||
endif |
endif |
@ -0,0 +1,66 @@ |
|||||||
|
|
||||||
|
# MCU name
|
||||||
|
#MCU = at90usb1287
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
# Boot Section Size in *bytes*
|
||||||
|
# Teensy halfKay 512
|
||||||
|
# Teensy++ halfKay 1024
|
||||||
|
# Atmel DFU loader 4096
|
||||||
|
# LUFA bootloader 4096
|
||||||
|
# USBaspLoader 2048
|
||||||
|
OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
||||||
|
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# comment out to disable the options.
|
||||||
|
#
|
||||||
|
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 ?= yes # Console for debug(+400)
|
||||||
|
COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
||||||
|
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
RGBLIGHT_ENABLE ?= yes # Enable keyboard underlight functionality (+4870)
|
||||||
|
BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality (+1150)
|
||||||
|
MIDI_ENABLE ?= no # MIDI controls
|
||||||
|
AUDIO_ENABLE ?= no
|
||||||
|
UNICODE_ENABLE ?= no # Unicode
|
||||||
|
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
|
@ -1,74 +1,3 @@ |
|||||||
|
ifndef MAKEFILE_INCLUDED |
||||||
|
|
||||||
# MCU name
|
|
||||||
#MCU = at90usb1287
|
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
# Boot Section Size in *bytes*
|
|
||||||
# Teensy halfKay 512
|
|
||||||
# Teensy++ halfKay 1024
|
|
||||||
# Atmel DFU loader 4096
|
|
||||||
# LUFA bootloader 4096
|
|
||||||
# USBaspLoader 2048
|
|
||||||
OPT_DEFS += -DBOOTLOADER_SIZE=512
|
|
||||||
|
|
||||||
|
|
||||||
# Build Options
|
|
||||||
# change yes to no to disable
|
|
||||||
#
|
|
||||||
BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
|
|
||||||
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
|
|
||||||
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
|
||||||
CONSOLE_ENABLE ?= yes # Console for debug(+400)
|
|
||||||
COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
|
||||||
KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key
|
|
||||||
# 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 ?= yes # USB Nkey Rollover
|
|
||||||
BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
|
|
||||||
MIDI_ENABLE ?= no # MIDI controls
|
|
||||||
UNICODE_ENABLE ?= no # Unicode
|
|
||||||
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
|
|
||||||
AUDIO_ENABLE ?= no # Audio output on port C6
|
|
||||||
|
|
||||||
ifndef QUANTUM_DIR |
|
||||||
include ../../Makefile
|
include ../../Makefile
|
||||||
endif |
endif |
@ -0,0 +1,70 @@ |
|||||||
|
|
||||||
|
|
||||||
|
# MCU name
|
||||||
|
#MCU = at90usb1287
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
# Boot Section Size in *bytes*
|
||||||
|
# Teensy halfKay 512
|
||||||
|
# Teensy++ halfKay 1024
|
||||||
|
# Atmel DFU loader 4096
|
||||||
|
# LUFA bootloader 4096
|
||||||
|
# USBaspLoader 2048
|
||||||
|
OPT_DEFS += -DBOOTLOADER_SIZE=512
|
||||||
|
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
|
||||||
|
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
|
||||||
|
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
||||||
|
CONSOLE_ENABLE ?= yes # Console for debug(+400)
|
||||||
|
COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
||||||
|
KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key
|
||||||
|
# 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 ?= yes # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
|
||||||
|
MIDI_ENABLE ?= no # MIDI controls
|
||||||
|
UNICODE_ENABLE ?= no # Unicode
|
||||||
|
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
|
AUDIO_ENABLE ?= no # Audio output on port C6
|
@ -1,73 +1,3 @@ |
|||||||
|
ifndef MAKEFILE_INCLUDED |
||||||
|
|
||||||
# MCU name
|
|
||||||
#MCU = at90usb1287
|
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
# Boot Section Size in *bytes*
|
|
||||||
# Teensy halfKay 512
|
|
||||||
# Teensy++ halfKay 1024
|
|
||||||
# Atmel DFU loader 4096
|
|
||||||
# LUFA bootloader 4096
|
|
||||||
# USBaspLoader 2048
|
|
||||||
OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
|
||||||
|
|
||||||
# Build Options
|
|
||||||
# change to "no" to disable the options, or define them in the Makefile in
|
|
||||||
# the appropriate keymap folder that will get included automatically
|
|
||||||
#
|
|
||||||
BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
|
|
||||||
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
|
|
||||||
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
|
||||||
CONSOLE_ENABLE ?= no # Console for debug(+400)
|
|
||||||
COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
|
||||||
NKRO_ENABLE ?= no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
|
||||||
BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
|
|
||||||
MIDI_ENABLE ?= no # MIDI controls
|
|
||||||
AUDIO_ENABLE ?= no # Audio output on port C6
|
|
||||||
UNICODE_ENABLE ?= no # Unicode
|
|
||||||
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
|
|
||||||
RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
|
|
||||||
|
|
||||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
|
||||||
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
|
|
||||||
|
|
||||||
ifndef QUANTUM_DIR |
|
||||||
include ../../Makefile
|
include ../../Makefile
|
||||||
endif |
endif |
@ -0,0 +1,69 @@ |
|||||||
|
|
||||||
|
|
||||||
|
# MCU name
|
||||||
|
#MCU = at90usb1287
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
# Boot Section Size in *bytes*
|
||||||
|
# Teensy halfKay 512
|
||||||
|
# Teensy++ halfKay 1024
|
||||||
|
# Atmel DFU loader 4096
|
||||||
|
# LUFA bootloader 4096
|
||||||
|
# USBaspLoader 2048
|
||||||
|
OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change to "no" to disable the options, or define them in the Makefile in
|
||||||
|
# the appropriate keymap folder that will get included automatically
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
|
||||||
|
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
|
||||||
|
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
||||||
|
CONSOLE_ENABLE ?= no # Console for debug(+400)
|
||||||
|
COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
||||||
|
NKRO_ENABLE ?= no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
|
||||||
|
MIDI_ENABLE ?= no # MIDI controls
|
||||||
|
AUDIO_ENABLE ?= no # Audio output on port C6
|
||||||
|
UNICODE_ENABLE ?= no # Unicode
|
||||||
|
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
|
RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
|
||||||
|
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
|
@ -1,88 +1,3 @@ |
|||||||
|
ifndef MAKEFILE_INCLUDED |
||||||
|
|
||||||
ifdef TEENSY2 |
|
||||||
OPT_DEFS += -DATREUS_TEENSY2
|
|
||||||
ATREUS_UPLOAD_COMMAND = teensy_loader_cli -w -mmcu=$(MCU) $(TARGET).hex
|
|
||||||
else |
|
||||||
OPT_DEFS += -DATREUS_ASTAR
|
|
||||||
OPT_DEFS += -DCATERINA_BOOTLOADER
|
|
||||||
ATREUS_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \
|
|
||||||
avrdude -p $(MCU) -c avr109 -U flash:w:$(TARGET).hex -P $(USB)
|
|
||||||
endif |
|
||||||
|
|
||||||
# MCU name
|
|
||||||
#MCU = at90usb1287
|
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
# Boot Section Size in *bytes*
|
|
||||||
# Teensy halfKay 512
|
|
||||||
# Teensy++ halfKay 1024
|
|
||||||
# Atmel DFU loader 4096
|
|
||||||
# LUFA bootloader 4096
|
|
||||||
# USBaspLoader 2048
|
|
||||||
OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
|
||||||
|
|
||||||
|
|
||||||
# Build Options
|
|
||||||
# comment out to disable the options.
|
|
||||||
#
|
|
||||||
#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
|
|
||||||
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
|
|
||||||
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
|
||||||
CONSOLE_ENABLE ?= yes # Console for debug(+400)
|
|
||||||
COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
|
||||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
|
||||||
# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
|
|
||||||
NKRO_ENABLE ?= yes # USB Nkey Rollover - not yet supported in LUFA
|
|
||||||
# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
|
|
||||||
# MIDI_ENABLE ?= YES # MIDI controls
|
|
||||||
UNICODE_ENABLE ?= YES # Unicode
|
|
||||||
# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
|
|
||||||
|
|
||||||
|
|
||||||
ifndef QUANTUM_DIR |
|
||||||
include ../../Makefile
|
include ../../Makefile
|
||||||
endif |
endif |
||||||
|
|
||||||
USB ?= /dev/cu.usbmodem1411
|
|
||||||
|
|
||||||
upload: build |
|
||||||
$(ATREUS_UPLOAD_COMMAND)
|
|
||||||
|
|
After Width: | Height: | Size: 74 KiB |
After Width: | Height: | Size: 89 KiB |
After Width: | Height: | Size: 90 KiB |
After Width: | Height: | Size: 71 KiB |
After Width: | Height: | Size: 72 KiB |
@ -0,0 +1,94 @@ |
|||||||
|
/*
|
||||||
|
Config file - Atreus QMK with replicaJunction layout |
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify |
||||||
|
it under the terms of the GNU General Public License as published by |
||||||
|
the Free Software Foundation, either version 2 of the License, or |
||||||
|
(at your option) any later version. |
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful, |
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
GNU General Public License for more details. |
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License |
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/ |
||||||
|
|
||||||
|
#ifndef CONFIG_H |
||||||
|
#define CONFIG_H |
||||||
|
|
||||||
|
#include "config_common.h" |
||||||
|
|
||||||
|
/* USB Device descriptor parameter */ |
||||||
|
|
||||||
|
#define VENDOR_ID 0xFEED |
||||||
|
#define PRODUCT_ID 0x6060 |
||||||
|
#define DEVICE_VER 0x0001 |
||||||
|
#define MANUFACTURER Technomancy |
||||||
|
#define PRODUCT Atreus |
||||||
|
#define DESCRIPTION q.m.k. keyboard firmware for Atreus |
||||||
|
|
||||||
|
/* key matrix size */ |
||||||
|
#define MATRIX_ROWS 4 |
||||||
|
#define MATRIX_COLS 11 |
||||||
|
|
||||||
|
// Change this to how you wired your keyboard
|
||||||
|
// COLS: Left to right, ROWS: Top to bottom
|
||||||
|
#if defined(ATREUS_ASTAR) |
||||||
|
# define MATRIX_ROW_PINS { D0, D1, D3, D2 } |
||||||
|
# define MATRIX_COL_PINS { D7, C6, B5, B4, E6, D4, B6, F6, F7, D6, B7 } |
||||||
|
# define UNUSED_PINS |
||||||
|
#elif defined(ATREUS_TEENSY2) |
||||||
|
# define MATRIX_ROW_PINS { D0, D1, D2, D3 } |
||||||
|
# define MATRIX_COL_PINS { F6, F5, F4, B7, B6, B5, B4, B3, B2, B1, B0 } |
||||||
|
# define UNUSED_PINS |
||||||
|
#endif |
||||||
|
|
||||||
|
/* COL2ROW or ROW2COL */ |
||||||
|
#define DIODE_DIRECTION COL2ROW |
||||||
|
|
||||||
|
/* define if matrix has ghost */ |
||||||
|
//#define MATRIX_HAS_GHOST
|
||||||
|
|
||||||
|
/* number of backlight levels */ |
||||||
|
//#define BACKLIGHT_LEVELS 3
|
||||||
|
|
||||||
|
/* Set 0 if debouncing isn't needed */ |
||||||
|
// Default: 5
|
||||||
|
#define DEBOUNCING_DELAY 6 |
||||||
|
|
||||||
|
// I don't have any locking keys, so I don't need these features
|
||||||
|
|
||||||
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ |
||||||
|
//#define LOCKING_SUPPORT_ENABLE
|
||||||
|
/* Locking resynchronize hack */ |
||||||
|
//#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
|
/* key combination for command */ |
||||||
|
#define IS_COMMAND() ( \ |
||||||
|
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
||||||
|
) |
||||||
|
|
||||||
|
/* Prevent modifiers from sticking when switching layers */ |
||||||
|
#define PREVENT_STUCK_MODIFIERS |
||||||
|
|
||||||
|
/*
|
||||||
|
* Feature disable options |
||||||
|
* These options are also useful to firmware size reduction. |
||||||
|
*/ |
||||||
|
|
||||||
|
/* disable debug print */ |
||||||
|
//#define NO_DEBUG
|
||||||
|
|
||||||
|
/* disable print */ |
||||||
|
//#define NO_PRINT
|
||||||
|
|
||||||
|
/* disable action features */ |
||||||
|
//#define NO_ACTION_LAYER
|
||||||
|
//#define NO_ACTION_TAPPING
|
||||||
|
//#define NO_ACTION_ONESHOT
|
||||||
|
//#define NO_ACTION_MACRO
|
||||||
|
//#define NO_ACTION_FUNCTION
|
||||||
|
|
||||||
|
#endif |
@ -0,0 +1,107 @@ |
|||||||
|
/*
|
||||||
|
* Keyboard: Atreus |
||||||
|
* Keymap: replicaJunction |
||||||
|
* Version: 0.3 |
||||||
|
* |
||||||
|
* This keymap is designed to complement my Ergodox keyboard layout, found in keyboards/ergodox_ez. |
||||||
|
* The Atreus keyboard is a 40% board whose design was heavily influenced by the Ergodox. I now |
||||||
|
* have both keyboards, so I've designed these layouts in an effort to make switching between the |
||||||
|
* two as easy as possible. |
||||||
|
* |
||||||
|
* Clearly, the Atreus is the limiting factor in this equation, so I've taken heavy advantage of |
||||||
|
* function and dual-role keys. |
||||||
|
* |
||||||
|
* The default key layout in this keymap is Colemak-ModDH. Information on that layout can be found |
||||||
|
* here: https://colemakmods.github.io/mod-dh/
|
||||||
|
*/ |
||||||
|
|
||||||
|
#include "atreus.h" |
||||||
|
|
||||||
|
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||||
|
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||||
|
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||||
|
// entirely and just use numbers.
|
||||||
|
|
||||||
|
// Note that whatever is set as layer 0 will be the default layer of the keyboard.
|
||||||
|
|
||||||
|
#define _CO 0 // Colemak
|
||||||
|
#define _QW 1 // QWERTY
|
||||||
|
#define _GA 2 // Gaming
|
||||||
|
#define _EX 3 // Extend
|
||||||
|
#define _NU 4 // Numpad
|
||||||
|
#define _FN 5 // Function
|
||||||
|
|
||||||
|
// Some quick aliases, just to make it look pretty
|
||||||
|
#define _______ KC_TRNS |
||||||
|
#define KCX_CA LCTL(KC_LALT) |
||||||
|
#define KCX_CS LCTL(KC_LSFT) |
||||||
|
#define KCX_CSA LCTL(LSFT(KC_LALT)) |
||||||
|
#define KCX_LST LSFT(KC_TAB) |
||||||
|
#define KX_COPY LCTL(KC_C) |
||||||
|
#define KX_CUT LCTL(KC_X) |
||||||
|
#define KX_PAST LCTL(KC_V) |
||||||
|
#define KX_UNDO LCTL(KC_Z) |
||||||
|
|
||||||
|
; // This doesn't do anything. It's just for VSCode because its syntax highlighting is weird for the above #define statements.
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
||||||
|
[_CO] = KEYMAP( |
||||||
|
KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, |
||||||
|
KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, |
||||||
|
SFT_T(KC_Z), KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, SFT_T(KC_SLSH), |
||||||
|
KC_ESC, KC_LGUI, KC_TAB, KC_LALT, KC_BSPC, CTL_T(KC_DEL), ALT_T(KC_ENT), LT(_NU, KC_SPC), MO(_EX), KC_MINS, KC_QUOT, KC_EQL |
||||||
|
), |
||||||
|
|
||||||
|
[_QW] = KEYMAP( /* Qwerty */ |
||||||
|
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, |
||||||
|
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, |
||||||
|
SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH), |
||||||
|
KC_ESC, KC_LGUI, KC_TAB, KC_LALT, KC_BSPC, CTL_T(KC_DEL), ALT_T(KC_ENT), LT(_NU, KC_SPC), MO(_EX), KC_MINS, KC_QUOT, KC_EQL |
||||||
|
), |
||||||
|
|
||||||
|
[_EX] = KEYMAP( /* Extend */ |
||||||
|
KC_CAPS, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, |
||||||
|
_______, KC_LGUI, KC_LALT, KC_LCTL, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC, |
||||||
|
_______, KX_CUT, KX_COPY, _______, KX_PAST, _______, KC_TAB, KCX_LST, _______, KC_INSERT, |
||||||
|
_______, _______, _______, _______, _______, _______, _______, KC_SPC, _______, _______, _______, KC_PSCR |
||||||
|
), |
||||||
|
|
||||||
|
[_NU] = KEYMAP( /* Numbers and symbols */ |
||||||
|
KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_AMPR, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR, |
||||||
|
KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_TILD, KC_PIPE, KC_4, KC_5, KC_6, KC_MINS, |
||||||
|
KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_GRV, KC_BSLS, KC_1, KC_2, KC_3, KC_PLUS, |
||||||
|
_______, TG(_GA), _______, MO(_FN), _______, _______, _______, _______, KC_0, KC_DOT, KC_EQL, _______ |
||||||
|
), |
||||||
|
|
||||||
|
[_FN] = KEYMAP( /* Functions */ |
||||||
|
KC_DEL, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, KC_F7, KC_F8, KC_F9, KC_F10, |
||||||
|
KC_BSPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_DOWN, _______, KC_F4, KC_F5, KC_F6, KC_F11, |
||||||
|
_______, KC_VOLU, KC_MUTE, KC_VOLD, KC_MPLY, _______, KC_F1, KC_F2, KC_F3, KC_F12, |
||||||
|
_______, _______, _______, _______, KC_MSTP, _______, _______, _______, KC_NO, DF(_CO), DF(_QW), RESET |
||||||
|
), |
||||||
|
|
||||||
|
[_GA] = KEYMAP( /* Gaming */ |
||||||
|
_______, _______, _______, _______, _______, _______, KC_WH_U, KC_MS_U, KC_WH_D, _______, |
||||||
|
_______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, |
||||||
|
KC_Z, _______, _______, _______, _______, KC_BTN3, _______, KC_MS_D, _______, _______, |
||||||
|
_______, TG(_GA), _______, KC_LSFT, KC_SPC, KC_BSPC, KC_BTN2, KC_BTN1, _______, _______, _______, _______ |
||||||
|
)}; |
||||||
|
|
||||||
|
const uint16_t PROGMEM fn_actions[] = { |
||||||
|
|
||||||
|
}; |
||||||
|
|
||||||
|
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) |
||||||
|
{ |
||||||
|
// MACRODOWN only works in this function
|
||||||
|
switch(id) { |
||||||
|
case 0: |
||||||
|
if (record->event.pressed) { |
||||||
|
register_code(KC_RSFT); |
||||||
|
} else { |
||||||
|
unregister_code(KC_RSFT); |
||||||
|
} |
||||||
|
break; |
||||||
|
} |
||||||
|
return MACRO_NONE; |
||||||
|
}; |
@ -0,0 +1,57 @@ |
|||||||
|
# replicaJunction - Atreus Layout # |
||||||
|
|
||||||
|
This layout is designed to make the absolute most out of the Atreus 40% keyboard. |
||||||
|
|
||||||
|
I was enchanted with the idea of the Atreus keyboard after using my Ergodox for several months. I wanted something of a similar form factor that was easily portable, so I could bring and transport a keyboard to my workplace without much hassle. After building the Atreus keyboard, though, I realized very quickly that the 40% form factor requires a lot more creativity than a full-size keyboard (even one as strangely-shaped as the Ergodox). |
||||||
|
|
||||||
|
The default Atreus keyboard layout provides all the necessary keys in order to function with the keyboard, but as a programmer, I needed quicker access to just about everything. I noticed that the default layer didn't include any dual-role keys, and so I started on my journey to build my perfect layout for the Atreus. |
||||||
|
|
||||||
|
I won't claim that this layout is perfect for everyone. It does make several significant changes from the "normal" Atreus layout. In my own use, though, I've found this keyboard turbocharges my Atreus, and gives it the power of a full-size keyboard without the size. |
||||||
|
|
||||||
|
## Base Layer ## |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
The letters on this layout are arranged in the [Colemak Mod-DH layout](https://colemakmods.github.io/mod-dh/). |
||||||
|
|
||||||
|
Note that there are four dual-purpose keys: Shift (Backspace), Ctrl (Delete), Alt (Enter), and Space (Number layer). In QMK, these dual-role keys can be made to hold their primary key by double-tapping the key and holding on the second tap. For example, if I wanted to insert a long string of Spaces, I would tap the Space key, then tap it again and hold. A single press and hold would trigger the secondary function of the key instead. |
||||||
|
|
||||||
|
The secondary Alt on the left bottom row exists to provide a single-hand Alt+Tab shortcut, which would take two rows otherwise. |
||||||
|
|
||||||
|
## Extend Layer ## |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
This layout is designed primarily for keyboard navigation. Arrow keys are easily accessible under the right hand (a welcome change from the original Atreus layout, which places them under the left hand), along with Home/End and PgUp/PgDn. |
||||||
|
|
||||||
|
Modifiers are also placed under the home row of the left hand. One of the single keyboard actions I use most is Shift+Ctrl+Left/Right to select a whole word; this layer makes those keypresses simple by adding the Ctrl key in an easy-to-reach location. |
||||||
|
|
||||||
|
For the common Ctrl shortcuts, I also added some hotkeys to this layer over the letter keys they are associated with. This gives the Extend key some extra utility by letting it "feel" like a Ctrl key in some cases. |
||||||
|
|
||||||
|
The Space key exists to prevent going from this layer directly into the Number layer. Similarly, the Shift key on the left pinky helps make sure that the normal letter (Z) doesn't fire. |
||||||
|
|
||||||
|
## Number and Symbol Layer ## |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
This layer provides the only way of accessing number keys on this keyboard, since it's too small for its own number row. Note that even though they are laid out in the number pad fashion, they send the "regular" number keystrokes. Games and programs that specifically use NumPad keys are not supported in this layout at the moment. |
||||||
|
|
||||||
|
This layer also provides plenty of symbol shortcuts. Most of these can be accessed through other means (like Shift+8 for the asterisk), but having shortcut keys to them makes for one less keypress, which adds up quickly when using these symbols on a regular basis. I've been through many revisions of this concept on my Ergodox as well as the Atreus, and I've finally arrived at this layout as the one that provides the symbols I need most frequently in places I can think to expect them. The Ordinary layout from the Ergodox-EZ keyboard in this repository was a large influence in this design. |
||||||
|
|
||||||
|
## Function Layer ## |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
Function keys (F1-F12) are on this layer, as well as some more generic "functions" such as media keys. I've also set up a mirror image of the arrows from the Extend layer in case I need to use these with my left hand, but I don't do this very often. |
||||||
|
|
||||||
|
The reset key is on this layer, as well as a toggle from Colemak to QWERTY and back. The QWERTY layer is not currently documented, but it is functionally identical to the base layer except for letter positions. |
||||||
|
|
||||||
|
## Gaming Layer ## |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
This is a small layer developed to allow some simple gameplay without a mouse. This layer is a toggle (from the Number layer), so it is designed to stay on while in use. |
||||||
|
|
||||||
|
The keys on the left hand bring Space into the left thumb's reach, as well as overriding the dual-role Shift with its standard function (Z in both QWERTY and in Colemak). This allows easy Shift presses without blocking the Z key, commonly used in games. |
||||||
|
|
||||||
|
I would probably not consider this a hard-core gaming keyboard, and this layout does have the huge problem of blocking access to the number keys, but for more casual games, it plays quite well. I've used it quite a bit on Minecraft, for example, and I'm quite pleased with it. |
@ -0,0 +1,82 @@ |
|||||||
|
|
||||||
|
|
||||||
|
ifdef TEENSY2 |
||||||
|
OPT_DEFS += -DATREUS_TEENSY2
|
||||||
|
ATRUES_UPLOAD_COMMAND = teensy_loader_cli -w -mmcu=$(MCU) $(TARGET).hex
|
||||||
|
else |
||||||
|
OPT_DEFS += -DATREUS_ASTAR
|
||||||
|
OPT_DEFS += -DCATERINA_BOOTLOADER
|
||||||
|
ATRUES_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \
|
||||||
|
avrdude -p $(MCU) -c avr109 -U flash:w:$(TARGET).hex -P $(USB)
|
||||||
|
endif |
||||||
|
|
||||||
|
# MCU name
|
||||||
|
#MCU = at90usb1287
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
# Boot Section Size in *bytes*
|
||||||
|
# Teensy halfKay 512
|
||||||
|
# Teensy++ halfKay 1024
|
||||||
|
# Atmel DFU loader 4096
|
||||||
|
# LUFA bootloader 4096
|
||||||
|
# USBaspLoader 2048
|
||||||
|
OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
||||||
|
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# comment out to disable the options.
|
||||||
|
#
|
||||||
|
#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
|
||||||
|
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
|
||||||
|
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
||||||
|
CONSOLE_ENABLE ?= yes # Console for debug(+400)
|
||||||
|
COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
|
||||||
|
NKRO_ENABLE ?= yes # USB Nkey Rollover - not yet supported in LUFA
|
||||||
|
# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
|
||||||
|
# MIDI_ENABLE ?= YES # MIDI controls
|
||||||
|
UNICODE_ENABLE ?= YES # Unicode
|
||||||
|
# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
|
|
||||||
|
USB ?= /dev/cu.usbmodem1411
|
||||||
|
|
||||||
|
upload: build |
||||||
|
$(ATRUES_UPLOAD_COMMAND)
|
@ -1,72 +1,3 @@ |
|||||||
|
ifndef MAKEFILE_INCLUDED |
||||||
|
|
||||||
# MCU name
|
|
||||||
#MCU = at90usb1287
|
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
# Boot Section Size in *bytes*
|
|
||||||
# Teensy halfKay 512
|
|
||||||
# Teensy++ halfKay 1024
|
|
||||||
# Atmel DFU loader 4096
|
|
||||||
# LUFA bootloader 4096
|
|
||||||
# USBaspLoader 2048
|
|
||||||
OPT_DEFS += -DBOOTLOADER_SIZE=512
|
|
||||||
|
|
||||||
|
|
||||||
# Build Options
|
|
||||||
# comment out to disable the options.
|
|
||||||
#
|
|
||||||
BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
|
|
||||||
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
|
|
||||||
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
|
||||||
CONSOLE_ENABLE ?= yes # Console for debug(+400)
|
|
||||||
COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
|
||||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
|
||||||
# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
|
|
||||||
# NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
|
||||||
# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
|
|
||||||
# MIDI_ENABLE ?= YES # MIDI controls
|
|
||||||
# UNICODE_ENABLE ?= YES # Unicode
|
|
||||||
# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
|
|
||||||
|
|
||||||
ifndef QUANTUM_DIR |
|
||||||
include ../../Makefile
|
include ../../Makefile
|
||||||
endif |
endif |
||||||
|
|
@ -0,0 +1,67 @@ |
|||||||
|
|
||||||
|
|
||||||
|
# MCU name
|
||||||
|
#MCU = at90usb1287
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
# Boot Section Size in *bytes*
|
||||||
|
# Teensy halfKay 512
|
||||||
|
# Teensy++ halfKay 1024
|
||||||
|
# Atmel DFU loader 4096
|
||||||
|
# LUFA bootloader 4096
|
||||||
|
# USBaspLoader 2048
|
||||||
|
OPT_DEFS += -DBOOTLOADER_SIZE=512
|
||||||
|
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# comment out to disable the options.
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
|
||||||
|
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
|
||||||
|
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
||||||
|
CONSOLE_ENABLE ?= yes # Console for debug(+400)
|
||||||
|
COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
|
||||||
|
# NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
|
||||||
|
# MIDI_ENABLE ?= YES # MIDI controls
|
||||||
|
# UNICODE_ENABLE ?= YES # Unicode
|
||||||
|
# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
|
@ -1,14 +1,5 @@ |
|||||||
SUBPROJECT_DEFAULT = stm32_f072_onekey
|
SUBPROJECT_DEFAULT = stm32_f072_onekey
|
||||||
|
|
||||||
#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
|
ifndef MAKEFILE_INCLUDED |
||||||
MOUSEKEY_ENABLE ?= yes # Mouse keys
|
|
||||||
EXTRAKEY_ENABLE ?= yes # Audio control and System control
|
|
||||||
CONSOLE_ENABLE ?= yes # Console for debug
|
|
||||||
COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
|
||||||
SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
|
|
||||||
NKRO_ENABLE ?= yes # USB Nkey Rollover
|
|
||||||
CUSTOM_MATRIX ?= yes # Custom matrix file
|
|
||||||
|
|
||||||
ifndef QUANTUM_DIR |
|
||||||
include ../../Makefile
|
include ../../Makefile
|
||||||
endif |
endif |
@ -1,49 +1,49 @@ |
|||||||
/*
|
/*
|
||||||
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio |
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio |
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); |
Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
you may not use this file except in compliance with the License. |
you may not use this file except in compliance with the License. |
||||||
You may obtain a copy of the License at |
You may obtain a copy of the License at |
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software |
Unless required by applicable law or agreed to in writing, software |
||||||
distributed under the License is distributed on an "AS IS" BASIS, |
distributed under the License is distributed on an "AS IS" BASIS, |
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
See the License for the specific language governing permissions and |
See the License for the specific language governing permissions and |
||||||
limitations under the License. |
limitations under the License. |
||||||
*/ |
*/ |
||||||
|
|
||||||
#include "hal.h" |
#include "hal.h" |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief PAL setup. |
* @brief PAL setup. |
||||||
* @details Digital I/O ports static configuration as defined in @p board.h. |
* @details Digital I/O ports static configuration as defined in @p board.h. |
||||||
* This variable is used by the HAL when initializing the PAL driver. |
* This variable is used by the HAL when initializing the PAL driver. |
||||||
*/ |
*/ |
||||||
#if HAL_USE_PAL || defined(__DOXYGEN__) |
#if HAL_USE_PAL || defined(__DOXYGEN__) |
||||||
const PALConfig pal_default_config = |
const PALConfig pal_default_config = |
||||||
{ |
{ |
||||||
{VAL_GPIOAODR, VAL_GPIOACRL, VAL_GPIOACRH}, |
{VAL_GPIOAODR, VAL_GPIOACRL, VAL_GPIOACRH}, |
||||||
{VAL_GPIOBODR, VAL_GPIOBCRL, VAL_GPIOBCRH}, |
{VAL_GPIOBODR, VAL_GPIOBCRL, VAL_GPIOBCRH}, |
||||||
{VAL_GPIOCODR, VAL_GPIOCCRL, VAL_GPIOCCRH}, |
{VAL_GPIOCODR, VAL_GPIOCCRL, VAL_GPIOCCRH}, |
||||||
{VAL_GPIODODR, VAL_GPIODCRL, VAL_GPIODCRH}, |
{VAL_GPIODODR, VAL_GPIODCRL, VAL_GPIODCRH}, |
||||||
{VAL_GPIOEODR, VAL_GPIOECRL, VAL_GPIOECRH}, |
{VAL_GPIOEODR, VAL_GPIOECRL, VAL_GPIOECRH}, |
||||||
}; |
}; |
||||||
#endif |
#endif |
||||||
|
|
||||||
/*
|
/*
|
||||||
* Early initialization code. |
* Early initialization code. |
||||||
* This initialization must be performed just after stack setup and before |
* This initialization must be performed just after stack setup and before |
||||||
* any other initialization. |
* any other initialization. |
||||||
*/ |
*/ |
||||||
void __early_init(void) { |
void __early_init(void) { |
||||||
|
|
||||||
stm32_clock_init(); |
stm32_clock_init(); |
||||||
} |
} |
||||||
|
|
||||||
/*
|
/*
|
||||||
* Board-specific initialization code. |
* Board-specific initialization code. |
||||||
*/ |
*/ |
||||||
void boardInit(void) { |
void boardInit(void) { |
||||||
} |
} |
||||||
|
@ -1,166 +1,166 @@ |
|||||||
/*
|
/*
|
||||||
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio |
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio |
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); |
Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
you may not use this file except in compliance with the License. |
you may not use this file except in compliance with the License. |
||||||
You may obtain a copy of the License at |
You may obtain a copy of the License at |
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software |
Unless required by applicable law or agreed to in writing, software |
||||||
distributed under the License is distributed on an "AS IS" BASIS, |
distributed under the License is distributed on an "AS IS" BASIS, |
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
See the License for the specific language governing permissions and |
See the License for the specific language governing permissions and |
||||||
limitations under the License. |
limitations under the License. |
||||||
*/ |
*/ |
||||||
|
|
||||||
#ifndef _BOARD_H_ |
#ifndef _BOARD_H_ |
||||||
#define _BOARD_H_ |
#define _BOARD_H_ |
||||||
|
|
||||||
/*
|
/*
|
||||||
* Setup for a Generic STM32F103 board. |
* Setup for a Generic STM32F103 board. |
||||||
*/ |
*/ |
||||||
|
|
||||||
/*
|
/*
|
||||||
* Board identifier. |
* Board identifier. |
||||||
*/ |
*/ |
||||||
#define BOARD_GENERIC_STM32_F103 |
#define BOARD_GENERIC_STM32_F103 |
||||||
#define BOARD_NAME "Generic STM32F103x board" |
#define BOARD_NAME "Generic STM32F103x board" |
||||||
|
|
||||||
/*
|
/*
|
||||||
* Board frequencies. |
* Board frequencies. |
||||||
*/ |
*/ |
||||||
#define STM32_LSECLK 32768 |
#define STM32_LSECLK 32768 |
||||||
#define STM32_HSECLK 8000000 |
#define STM32_HSECLK 8000000 |
||||||
|
|
||||||
/*
|
/*
|
||||||
* MCU type, supported types are defined in ./os/hal/platforms/hal_lld.h. |
* MCU type, supported types are defined in ./os/hal/platforms/hal_lld.h. |
||||||
*/ |
*/ |
||||||
#define STM32F103xB |
#define STM32F103xB |
||||||
|
|
||||||
/*
|
/*
|
||||||
* IO pins assignments |
* IO pins assignments |
||||||
*/ |
*/ |
||||||
|
|
||||||
/* on-board */ |
/* on-board */ |
||||||
|
|
||||||
#define GPIOC_LED 13 |
#define GPIOC_LED 13 |
||||||
#define GPIOD_OSC_IN 0 |
#define GPIOD_OSC_IN 0 |
||||||
#define GPIOD_OSC_OUT 1 |
#define GPIOD_OSC_OUT 1 |
||||||
|
|
||||||
/* In case your board has a "USB enable" hardware
|
/* In case your board has a "USB enable" hardware
|
||||||
controlled by a pin, define it here. (It could be just |
controlled by a pin, define it here. (It could be just |
||||||
a 1.5k resistor connected to D+ line.) |
a 1.5k resistor connected to D+ line.) |
||||||
*/ |
*/ |
||||||
/*
|
/*
|
||||||
#define GPIOB_USB_DISC 10 |
#define GPIOB_USB_DISC 10 |
||||||
*/ |
*/ |
||||||
|
|
||||||
/*
|
/*
|
||||||
* I/O ports initial setup, this configuration is established soon after reset |
* I/O ports initial setup, this configuration is established soon after reset |
||||||
* in the initialization code. |
* in the initialization code. |
||||||
* |
* |
||||||
* The digits have the following meaning: |
* The digits have the following meaning: |
||||||
* 0 - Analog input. |
* 0 - Analog input. |
||||||
* 1 - Push Pull output 10MHz. |
* 1 - Push Pull output 10MHz. |
||||||
* 2 - Push Pull output 2MHz. |
* 2 - Push Pull output 2MHz. |
||||||
* 3 - Push Pull output 50MHz. |
* 3 - Push Pull output 50MHz. |
||||||
* 4 - Digital input. |
* 4 - Digital input. |
||||||
* 5 - Open Drain output 10MHz. |
* 5 - Open Drain output 10MHz. |
||||||
* 6 - Open Drain output 2MHz. |
* 6 - Open Drain output 2MHz. |
||||||
* 7 - Open Drain output 50MHz. |
* 7 - Open Drain output 50MHz. |
||||||
* 8 - Digital input with PullUp or PullDown resistor depending on ODR. |
* 8 - Digital input with PullUp or PullDown resistor depending on ODR. |
||||||
* 9 - Alternate Push Pull output 10MHz. |
* 9 - Alternate Push Pull output 10MHz. |
||||||
* A - Alternate Push Pull output 2MHz. |
* A - Alternate Push Pull output 2MHz. |
||||||
* B - Alternate Push Pull output 50MHz. |
* B - Alternate Push Pull output 50MHz. |
||||||
* C - Reserved. |
* C - Reserved. |
||||||
* D - Alternate Open Drain output 10MHz. |
* D - Alternate Open Drain output 10MHz. |
||||||
* E - Alternate Open Drain output 2MHz. |
* E - Alternate Open Drain output 2MHz. |
||||||
* F - Alternate Open Drain output 50MHz. |
* F - Alternate Open Drain output 50MHz. |
||||||
* Please refer to the STM32 Reference Manual for details. |
* Please refer to the STM32 Reference Manual for details. |
||||||
*/ |
*/ |
||||||
|
|
||||||
/*
|
/*
|
||||||
* Port A setup. |
* Port A setup. |
||||||
* Everything input with pull-up except: |
* Everything input with pull-up except: |
||||||
* PA2 - Alternate output (USART2 TX). |
* PA2 - Alternate output (USART2 TX). |
||||||
* PA3 - Normal input (USART2 RX). |
* PA3 - Normal input (USART2 RX). |
||||||
* PA9 - Alternate output (USART1 TX). |
* PA9 - Alternate output (USART1 TX). |
||||||
* PA10 - Normal input (USART1 RX). |
* PA10 - Normal input (USART1 RX). |
||||||
*/ |
*/ |
||||||
#define VAL_GPIOACRL 0x88884B88 /* PA7...PA0 */ |
#define VAL_GPIOACRL 0x88884B88 /* PA7...PA0 */ |
||||||
#define VAL_GPIOACRH 0x888884B8 /* PA15...PA8 */ |
#define VAL_GPIOACRH 0x888884B8 /* PA15...PA8 */ |
||||||
#define VAL_GPIOAODR 0xFFFFFFFF |
#define VAL_GPIOAODR 0xFFFFFFFF |
||||||
|
|
||||||
/*
|
/*
|
||||||
* Port B setup. |
* Port B setup. |
||||||
* Everything input with pull-up except: |
* Everything input with pull-up except: |
||||||
* PB10 - Push Pull output (USB switch). |
* PB10 - Push Pull output (USB switch). |
||||||
*/ |
*/ |
||||||
#define VAL_GPIOBCRL 0x88888888 /* PB7...PB0 */ |
#define VAL_GPIOBCRL 0x88888888 /* PB7...PB0 */ |
||||||
#define VAL_GPIOBCRH 0x88888388 /* PB15...PB8 */ |
#define VAL_GPIOBCRH 0x88888388 /* PB15...PB8 */ |
||||||
#define VAL_GPIOBODR 0xFFFFFFFF |
#define VAL_GPIOBODR 0xFFFFFFFF |
||||||
|
|
||||||
/*
|
/*
|
||||||
* Port C setup. |
* Port C setup. |
||||||
* Everything input with pull-up except: |
* Everything input with pull-up except: |
||||||
* PC13 - Push Pull output (LED). |
* PC13 - Push Pull output (LED). |
||||||
*/ |
*/ |
||||||
#define VAL_GPIOCCRL 0x88888888 /* PC7...PC0 */ |
#define VAL_GPIOCCRL 0x88888888 /* PC7...PC0 */ |
||||||
#define VAL_GPIOCCRH 0x88388888 /* PC15...PC8 */ |
#define VAL_GPIOCCRH 0x88388888 /* PC15...PC8 */ |
||||||
#define VAL_GPIOCODR 0xFFFFFFFF |
#define VAL_GPIOCODR 0xFFFFFFFF |
||||||
|
|
||||||
/*
|
/*
|
||||||
* Port D setup. |
* Port D setup. |
||||||
* Everything input with pull-up except: |
* Everything input with pull-up except: |
||||||
* PD0 - Normal input (XTAL). |
* PD0 - Normal input (XTAL). |
||||||
* PD1 - Normal input (XTAL). |
* PD1 - Normal input (XTAL). |
||||||
*/ |
*/ |
||||||
#define VAL_GPIODCRL 0x88888844 /* PD7...PD0 */ |
#define VAL_GPIODCRL 0x88888844 /* PD7...PD0 */ |
||||||
#define VAL_GPIODCRH 0x88888888 /* PD15...PD8 */ |
#define VAL_GPIODCRH 0x88888888 /* PD15...PD8 */ |
||||||
#define VAL_GPIODODR 0xFFFFFFFF |
#define VAL_GPIODODR 0xFFFFFFFF |
||||||
|
|
||||||
/*
|
/*
|
||||||
* Port E setup. |
* Port E setup. |
||||||
* Everything input with pull-up except: |
* Everything input with pull-up except: |
||||||
*/ |
*/ |
||||||
#define VAL_GPIOECRL 0x88888888 /* PE7...PE0 */ |
#define VAL_GPIOECRL 0x88888888 /* PE7...PE0 */ |
||||||
#define VAL_GPIOECRH 0x88888888 /* PE15...PE8 */ |
#define VAL_GPIOECRH 0x88888888 /* PE15...PE8 */ |
||||||
#define VAL_GPIOEODR 0xFFFFFFFF |
#define VAL_GPIOEODR 0xFFFFFFFF |
||||||
|
|
||||||
/*
|
/*
|
||||||
* USB bus activation macro, required by the USB driver. |
* USB bus activation macro, required by the USB driver. |
||||||
*/ |
*/ |
||||||
/* The point is that most of the generic STM32F103* boards
|
/* The point is that most of the generic STM32F103* boards
|
||||||
have a 1.5k resistor connected on one end to the D+ line |
have a 1.5k resistor connected on one end to the D+ line |
||||||
and on the other end to some pin. Or even a slightly more |
and on the other end to some pin. Or even a slightly more |
||||||
complicated "USB enable" circuit, controlled by a pin. |
complicated "USB enable" circuit, controlled by a pin. |
||||||
That should go here. |
That should go here. |
||||||
|
|
||||||
However on some boards (e.g. one that I have), there's no |
However on some boards (e.g. one that I have), there's no |
||||||
such hardware. In which case it's better to not do anything. |
such hardware. In which case it's better to not do anything. |
||||||
*/ |
*/ |
||||||
/*
|
/*
|
||||||
#define usb_lld_connect_bus(usbp) palClearPad(GPIOB, GPIOB_USB_DISC) |
#define usb_lld_connect_bus(usbp) palClearPad(GPIOB, GPIOB_USB_DISC) |
||||||
*/ |
*/ |
||||||
#define usb_lld_connect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_INPUT); |
#define usb_lld_connect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_INPUT); |
||||||
|
|
||||||
/*
|
/*
|
||||||
* USB bus de-activation macro, required by the USB driver. |
* USB bus de-activation macro, required by the USB driver. |
||||||
*/ |
*/ |
||||||
/*
|
/*
|
||||||
#define usb_lld_disconnect_bus(usbp) palSetPad(GPIOB, GPIOB_USB_DISC) |
#define usb_lld_disconnect_bus(usbp) palSetPad(GPIOB, GPIOB_USB_DISC) |
||||||
*/ |
*/ |
||||||
#define usb_lld_disconnect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_OUTPUT_PUSHPULL); palClearPad(GPIOA, 12); |
#define usb_lld_disconnect_bus(usbp) palSetPadMode(GPIOA, 12, PAL_MODE_OUTPUT_PUSHPULL); palClearPad(GPIOA, 12); |
||||||
|
|
||||||
#if !defined(_FROM_ASM_) |
#if !defined(_FROM_ASM_) |
||||||
#ifdef __cplusplus |
#ifdef __cplusplus |
||||||
extern "C" { |
extern "C" { |
||||||
#endif |
#endif |
||||||
void boardInit(void); |
void boardInit(void); |
||||||
#ifdef __cplusplus |
#ifdef __cplusplus |
||||||
} |
} |
||||||
#endif |
#endif |
||||||
#endif /* _FROM_ASM_ */ |
#endif /* _FROM_ASM_ */ |
||||||
|
|
||||||
#endif /* _BOARD_H_ */ |
#endif /* _BOARD_H_ */ |
||||||
|
@ -1,5 +1,5 @@ |
|||||||
# List of all the board related files.
|
# List of all the board related files.
|
||||||
BOARDSRC = $(KEYBOARD_PATH)/boards/GENERIC_STM32_F103/board.c
|
BOARDSRC = $(KEYBOARD_PATH)/boards/GENERIC_STM32_F103/board.c
|
||||||
|
|
||||||
# Required include directories
|
# Required include directories
|
||||||
BOARDINC = $(KEYBOARD_PATH)/boards/GENERIC_STM32_F103
|
BOARDINC = $(KEYBOARD_PATH)/boards/GENERIC_STM32_F103
|
||||||
|
@ -1,105 +1,105 @@ |
|||||||
/* |
/* |
||||||
* Copyright (C) 2013-2016 Fabio Utzig, http://fabioutzig.com |
* Copyright (C) 2013-2016 Fabio Utzig, http://fabioutzig.com |
||||||
* (C) 2016 flabbergast <s3+flabbergast@sdfeu.org> |
* (C) 2016 flabbergast <s3+flabbergast@sdfeu.org> |
||||||
* |
* |
||||||
* Permission is hereby granted, free of charge, to any person obtaining |
* Permission is hereby granted, free of charge, to any person obtaining |
||||||
* a copy of this software and associated documentation files (the "Software"), |
* a copy of this software and associated documentation files (the "Software"), |
||||||
* to deal in the Software without restriction, including without limitation |
* to deal in the Software without restriction, including without limitation |
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense, |
* the rights to use, copy, modify, merge, publish, distribute, sublicense, |
||||||
* and/or sell copies of the Software, and to permit persons to whom the |
* and/or sell copies of the Software, and to permit persons to whom the |
||||||
* Software is furnished to do so, subject to the following conditions: |
* Software is furnished to do so, subject to the following conditions: |
||||||
* |
* |
||||||
* The above copyright notice and this permission notice shall be included in |
* The above copyright notice and this permission notice shall be included in |
||||||
* all copies or substantial portions of the Software. |
* all copies or substantial portions of the Software. |
||||||
* |
* |
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
||||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
||||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
||||||
* SOFTWARE. |
* SOFTWARE. |
||||||
*/ |
*/ |
||||||
|
|
||||||
/* |
/* |
||||||
* KL26Z64 memory setup. |
* KL26Z64 memory setup. |
||||||
*/ |
*/ |
||||||
MEMORY |
MEMORY |
||||||
{ |
{ |
||||||
flash0 : org = 0x00000000, len = 0x100 |
flash0 : org = 0x00000000, len = 0x100 |
||||||
flash1 : org = 0x00000400, len = 0x10 |
flash1 : org = 0x00000400, len = 0x10 |
||||||
flash2 : org = 0x00000410, len = 62k - 0x410 |
flash2 : org = 0x00000410, len = 62k - 0x410 |
||||||
flash3 : org = 0x0000F800, len = 2k |
flash3 : org = 0x0000F800, len = 2k |
||||||
flash4 : org = 0x00000000, len = 0 |
flash4 : org = 0x00000000, len = 0 |
||||||
flash5 : org = 0x00000000, len = 0 |
flash5 : org = 0x00000000, len = 0 |
||||||
flash6 : org = 0x00000000, len = 0 |
flash6 : org = 0x00000000, len = 0 |
||||||
flash7 : org = 0x00000000, len = 0 |
flash7 : org = 0x00000000, len = 0 |
||||||
ram0 : org = 0x1FFFF800, len = 8k |
ram0 : org = 0x1FFFF800, len = 8k |
||||||
ram1 : org = 0x00000000, len = 0 |
ram1 : org = 0x00000000, len = 0 |
||||||
ram2 : org = 0x00000000, len = 0 |
ram2 : org = 0x00000000, len = 0 |
||||||
ram3 : org = 0x00000000, len = 0 |
ram3 : org = 0x00000000, len = 0 |
||||||
ram4 : org = 0x00000000, len = 0 |
ram4 : org = 0x00000000, len = 0 |
||||||
ram5 : org = 0x00000000, len = 0 |
ram5 : org = 0x00000000, len = 0 |
||||||
ram6 : org = 0x00000000, len = 0 |
ram6 : org = 0x00000000, len = 0 |
||||||
ram7 : org = 0x00000000, len = 0 |
ram7 : org = 0x00000000, len = 0 |
||||||
} |
} |
||||||
|
|
||||||
/* Flash region for the configuration bytes.*/ |
/* Flash region for the configuration bytes.*/ |
||||||
SECTIONS |
SECTIONS |
||||||
{ |
{ |
||||||
.cfmprotect : ALIGN(4) SUBALIGN(4) |
.cfmprotect : ALIGN(4) SUBALIGN(4) |
||||||
{ |
{ |
||||||
KEEP(*(.cfmconfig)) |
KEEP(*(.cfmconfig)) |
||||||
} > flash1 |
} > flash1 |
||||||
} |
} |
||||||
|
|
||||||
/* For each data/text section two region are defined, a virtual region |
/* For each data/text section two region are defined, a virtual region |
||||||
and a load region (_LMA suffix).*/ |
and a load region (_LMA suffix).*/ |
||||||
|
|
||||||
/* Flash region to be used for exception vectors.*/ |
/* Flash region to be used for exception vectors.*/ |
||||||
REGION_ALIAS("VECTORS_FLASH", flash0); |
REGION_ALIAS("VECTORS_FLASH", flash0); |
||||||
REGION_ALIAS("VECTORS_FLASH_LMA", flash0); |
REGION_ALIAS("VECTORS_FLASH_LMA", flash0); |
||||||
|
|
||||||
/* Flash region to be used for constructors and destructors.*/ |
/* Flash region to be used for constructors and destructors.*/ |
||||||
REGION_ALIAS("XTORS_FLASH", flash2); |
REGION_ALIAS("XTORS_FLASH", flash2); |
||||||
REGION_ALIAS("XTORS_FLASH_LMA", flash2); |
REGION_ALIAS("XTORS_FLASH_LMA", flash2); |
||||||
|
|
||||||
/* Flash region to be used for code text.*/ |
/* Flash region to be used for code text.*/ |
||||||
REGION_ALIAS("TEXT_FLASH", flash2); |
REGION_ALIAS("TEXT_FLASH", flash2); |
||||||
REGION_ALIAS("TEXT_FLASH_LMA", flash2); |
REGION_ALIAS("TEXT_FLASH_LMA", flash2); |
||||||
|
|
||||||
/* Flash region to be used for read only data.*/ |
/* Flash region to be used for read only data.*/ |
||||||
REGION_ALIAS("RODATA_FLASH", flash2); |
REGION_ALIAS("RODATA_FLASH", flash2); |
||||||
REGION_ALIAS("RODATA_FLASH_LMA", flash2); |
REGION_ALIAS("RODATA_FLASH_LMA", flash2); |
||||||
|
|
||||||
/* Flash region to be used for various.*/ |
/* Flash region to be used for various.*/ |
||||||
REGION_ALIAS("VARIOUS_FLASH", flash2); |
REGION_ALIAS("VARIOUS_FLASH", flash2); |
||||||
REGION_ALIAS("VARIOUS_FLASH_LMA", flash2); |
REGION_ALIAS("VARIOUS_FLASH_LMA", flash2); |
||||||
|
|
||||||
/* Flash region to be used for RAM(n) initialization data.*/ |
/* Flash region to be used for RAM(n) initialization data.*/ |
||||||
REGION_ALIAS("RAM_INIT_FLASH_LMA", flash2); |
REGION_ALIAS("RAM_INIT_FLASH_LMA", flash2); |
||||||
|
|
||||||
/* RAM region to be used for Main stack. This stack accommodates the processing |
/* RAM region to be used for Main stack. This stack accommodates the processing |
||||||
of all exceptions and interrupts.*/ |
of all exceptions and interrupts.*/ |
||||||
REGION_ALIAS("MAIN_STACK_RAM", ram0); |
REGION_ALIAS("MAIN_STACK_RAM", ram0); |
||||||
|
|
||||||
/* RAM region to be used for the process stack. This is the stack used by |
/* RAM region to be used for the process stack. This is the stack used by |
||||||
the main() function.*/ |
the main() function.*/ |
||||||
REGION_ALIAS("PROCESS_STACK_RAM", ram0); |
REGION_ALIAS("PROCESS_STACK_RAM", ram0); |
||||||
|
|
||||||
/* RAM region to be used for data segment.*/ |
/* RAM region to be used for data segment.*/ |
||||||
REGION_ALIAS("DATA_RAM", ram0); |
REGION_ALIAS("DATA_RAM", ram0); |
||||||
REGION_ALIAS("DATA_RAM_LMA", flash2); |
REGION_ALIAS("DATA_RAM_LMA", flash2); |
||||||
|
|
||||||
/* RAM region to be used for BSS segment.*/ |
/* RAM region to be used for BSS segment.*/ |
||||||
REGION_ALIAS("BSS_RAM", ram0); |
REGION_ALIAS("BSS_RAM", ram0); |
||||||
|
|
||||||
/* RAM region to be used for the default heap.*/ |
/* RAM region to be used for the default heap.*/ |
||||||
REGION_ALIAS("HEAP_RAM", ram0); |
REGION_ALIAS("HEAP_RAM", ram0); |
||||||
|
|
||||||
__eeprom_workarea_start__ = ORIGIN(flash3); |
__eeprom_workarea_start__ = ORIGIN(flash3); |
||||||
__eeprom_workarea_size__ = LENGTH(flash3); |
__eeprom_workarea_size__ = LENGTH(flash3); |
||||||
__eeprom_workarea_end__ = __eeprom_workarea_start__ + __eeprom_workarea_size__; |
__eeprom_workarea_end__ = __eeprom_workarea_start__ + __eeprom_workarea_size__; |
||||||
|
|
||||||
/* Generic rules inclusion.*/ |
/* Generic rules inclusion.*/ |
||||||
INCLUDE rules.ld |
INCLUDE rules.ld |
||||||
|
@ -1,88 +1,88 @@ |
|||||||
/* |
/* |
||||||
ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio |
ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio |
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); |
Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
you may not use this file except in compliance with the License. |
you may not use this file except in compliance with the License. |
||||||
You may obtain a copy of the License at |
You may obtain a copy of the License at |
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0 |
http://www.apache.org/licenses/LICENSE-2.0 |
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software |
Unless required by applicable law or agreed to in writing, software |
||||||
distributed under the License is distributed on an "AS IS" BASIS, |
distributed under the License is distributed on an "AS IS" BASIS, |
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
See the License for the specific language governing permissions and |
See the License for the specific language governing permissions and |
||||||
limitations under the License. |
limitations under the License. |
||||||
*/ |
*/ |
||||||
|
|
||||||
/* |
/* |
||||||
* ST32F103xB memory setup for use with the maplemini bootloader. |
* ST32F103xB memory setup for use with the maplemini bootloader. |
||||||
* You will have to |
* You will have to |
||||||
* #define CORTEX_VTOR_INIT 0x5000 |
* #define CORTEX_VTOR_INIT 0x5000 |
||||||
* in your projects chconf.h |
* in your projects chconf.h |
||||||
*/ |
*/ |
||||||
MEMORY |
MEMORY |
||||||
{ |
{ |
||||||
flash0 : org = 0x08002000, len = 128k - 0x2000 |
flash0 : org = 0x08002000, len = 128k - 0x2000 |
||||||
flash1 : org = 0x00000000, len = 0 |
flash1 : org = 0x00000000, len = 0 |
||||||
flash2 : org = 0x00000000, len = 0 |
flash2 : org = 0x00000000, len = 0 |
||||||
flash3 : org = 0x00000000, len = 0 |
flash3 : org = 0x00000000, len = 0 |
||||||
flash4 : org = 0x00000000, len = 0 |
flash4 : org = 0x00000000, len = 0 |
||||||
flash5 : org = 0x00000000, len = 0 |
flash5 : org = 0x00000000, len = 0 |
||||||
flash6 : org = 0x00000000, len = 0 |
flash6 : org = 0x00000000, len = 0 |
||||||
flash7 : org = 0x00000000, len = 0 |
flash7 : org = 0x00000000, len = 0 |
||||||
ram0 : org = 0x20000000, len = 20k |
ram0 : org = 0x20000000, len = 20k |
||||||
ram1 : org = 0x00000000, len = 0 |
ram1 : org = 0x00000000, len = 0 |
||||||
ram2 : org = 0x00000000, len = 0 |
ram2 : org = 0x00000000, len = 0 |
||||||
ram3 : org = 0x00000000, len = 0 |
ram3 : org = 0x00000000, len = 0 |
||||||
ram4 : org = 0x00000000, len = 0 |
ram4 : org = 0x00000000, len = 0 |
||||||
ram5 : org = 0x00000000, len = 0 |
ram5 : org = 0x00000000, len = 0 |
||||||
ram6 : org = 0x00000000, len = 0 |
ram6 : org = 0x00000000, len = 0 |
||||||
ram7 : org = 0x00000000, len = 0 |
ram7 : org = 0x00000000, len = 0 |
||||||
} |
} |
||||||
|
|
||||||
/* For each data/text section two region are defined, a virtual region |
/* For each data/text section two region are defined, a virtual region |
||||||
and a load region (_LMA suffix).*/ |
and a load region (_LMA suffix).*/ |
||||||
|
|
||||||
/* Flash region to be used for exception vectors.*/ |
/* Flash region to be used for exception vectors.*/ |
||||||
REGION_ALIAS("VECTORS_FLASH", flash0); |
REGION_ALIAS("VECTORS_FLASH", flash0); |
||||||
REGION_ALIAS("VECTORS_FLASH_LMA", flash0); |
REGION_ALIAS("VECTORS_FLASH_LMA", flash0); |
||||||
|
|
||||||
/* Flash region to be used for constructors and destructors.*/ |
/* Flash region to be used for constructors and destructors.*/ |
||||||
REGION_ALIAS("XTORS_FLASH", flash0); |
REGION_ALIAS("XTORS_FLASH", flash0); |
||||||
REGION_ALIAS("XTORS_FLASH_LMA", flash0); |
REGION_ALIAS("XTORS_FLASH_LMA", flash0); |
||||||
|
|
||||||
/* Flash region to be used for code text.*/ |
/* Flash region to be used for code text.*/ |
||||||
REGION_ALIAS("TEXT_FLASH", flash0); |
REGION_ALIAS("TEXT_FLASH", flash0); |
||||||
REGION_ALIAS("TEXT_FLASH_LMA", flash0); |
REGION_ALIAS("TEXT_FLASH_LMA", flash0); |
||||||
|
|
||||||
/* Flash region to be used for read only data.*/ |
/* Flash region to be used for read only data.*/ |
||||||
REGION_ALIAS("RODATA_FLASH", flash0); |
REGION_ALIAS("RODATA_FLASH", flash0); |
||||||
REGION_ALIAS("RODATA_FLASH_LMA", flash0); |
REGION_ALIAS("RODATA_FLASH_LMA", flash0); |
||||||
|
|
||||||
/* Flash region to be used for various.*/ |
/* Flash region to be used for various.*/ |
||||||
REGION_ALIAS("VARIOUS_FLASH", flash0); |
REGION_ALIAS("VARIOUS_FLASH", flash0); |
||||||
REGION_ALIAS("VARIOUS_FLASH_LMA", flash0); |
REGION_ALIAS("VARIOUS_FLASH_LMA", flash0); |
||||||
|
|
||||||
/* Flash region to be used for RAM(n) initialization data.*/ |
/* Flash region to be used for RAM(n) initialization data.*/ |
||||||
REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0); |
REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0); |
||||||
|
|
||||||
/* RAM region to be used for Main stack. This stack accommodates the processing |
/* RAM region to be used for Main stack. This stack accommodates the processing |
||||||
of all exceptions and interrupts.*/ |
of all exceptions and interrupts.*/ |
||||||
REGION_ALIAS("MAIN_STACK_RAM", ram0); |
REGION_ALIAS("MAIN_STACK_RAM", ram0); |
||||||
|
|
||||||
/* RAM region to be used for the process stack. This is the stack used by |
/* RAM region to be used for the process stack. This is the stack used by |
||||||
the main() function.*/ |
the main() function.*/ |
||||||
REGION_ALIAS("PROCESS_STACK_RAM", ram0); |
REGION_ALIAS("PROCESS_STACK_RAM", ram0); |
||||||
|
|
||||||
/* RAM region to be used for data segment.*/ |
/* RAM region to be used for data segment.*/ |
||||||
REGION_ALIAS("DATA_RAM", ram0); |
REGION_ALIAS("DATA_RAM", ram0); |
||||||
REGION_ALIAS("DATA_RAM_LMA", flash0); |
REGION_ALIAS("DATA_RAM_LMA", flash0); |
||||||
|
|
||||||
/* RAM region to be used for BSS segment.*/ |
/* RAM region to be used for BSS segment.*/ |
||||||
REGION_ALIAS("BSS_RAM", ram0); |
REGION_ALIAS("BSS_RAM", ram0); |
||||||
|
|
||||||
/* RAM region to be used for the default heap.*/ |
/* RAM region to be used for the default heap.*/ |
||||||
REGION_ALIAS("HEAP_RAM", ram0); |
REGION_ALIAS("HEAP_RAM", ram0); |
||||||
|
|
||||||
/* Generic rules inclusion.*/ |
/* Generic rules inclusion.*/ |
||||||
INCLUDE rules.ld |
INCLUDE rules.ld |
||||||
|
@ -0,0 +1,8 @@ |
|||||||
|
#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
|
||||||
|
MOUSEKEY_ENABLE ?= yes # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE ?= yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE ?= yes # Console for debug
|
||||||
|
COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
||||||
|
SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
|
||||||
|
NKRO_ENABLE ?= yes # USB Nkey Rollover
|
||||||
|
CUSTOM_MATRIX ?= yes # Custom matrix file
|
@ -1,41 +1,3 @@ |
|||||||
# project specific files
|
ifndef MAKEFILE_INCLUDED |
||||||
SRC = matrix.c \
|
|
||||||
led.c
|
|
||||||
|
|
||||||
## chip/board settings
|
|
||||||
# the next two should match the directories in
|
|
||||||
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
|
||||||
MCU_FAMILY = STM32
|
|
||||||
MCU_SERIES = STM32F0xx
|
|
||||||
# linker script to use
|
|
||||||
# it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
|
|
||||||
# or <this_dir>/ld/
|
|
||||||
MCU_LDSCRIPT = STM32F072xB
|
|
||||||
# startup code to use
|
|
||||||
# is should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
|
|
||||||
MCU_STARTUP = stm32f0xx
|
|
||||||
# it should exist either in <chibios>/os/hal/boards/
|
|
||||||
# or <this_dir>/boards
|
|
||||||
BOARD = ST_STM32F072B_DISCOVERY
|
|
||||||
# Cortex version
|
|
||||||
# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4
|
|
||||||
MCU = cortex-m0
|
|
||||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
|
||||||
ARMV = 6
|
|
||||||
# If you want to be able to jump to bootloader from firmware on STM32 MCUs,
|
|
||||||
# set the correct BOOTLOADER_ADDRESS. Either set it here, or define it in
|
|
||||||
# ./bootloader_defs.h or in ./boards/<FOO>/bootloader_defs.h (if you have
|
|
||||||
# a custom board definition that you plan to reuse).
|
|
||||||
# If you're not setting it here, leave it commented out.
|
|
||||||
# It is chip dependent, the correct number can be looked up here (page 175):
|
|
||||||
# http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
|
|
||||||
# This also requires a patch to chibios:
|
|
||||||
# <tmk_dir>/tmk_core/tool/chibios/ch-bootloader-jump.patch
|
|
||||||
#STM32_BOOTLOADER_ADDRESS = 0x1FFFC800
|
|
||||||
|
|
||||||
# Build Options
|
|
||||||
# comment out to disable the options.
|
|
||||||
#
|
|
||||||
ifndef QUANTUM_DIR |
|
||||||
include ../../../Makefile
|
include ../../../Makefile
|
||||||
endif |
endif |
@ -1,171 +1,171 @@ |
|||||||
/*
|
/*
|
||||||
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio |
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio |
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); |
Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
you may not use this file except in compliance with the License. |
you may not use this file except in compliance with the License. |
||||||
You may obtain a copy of the License at |
You may obtain a copy of the License at |
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software |
Unless required by applicable law or agreed to in writing, software |
||||||
distributed under the License is distributed on an "AS IS" BASIS, |
distributed under the License is distributed on an "AS IS" BASIS, |
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
See the License for the specific language governing permissions and |
See the License for the specific language governing permissions and |
||||||
limitations under the License. |
limitations under the License. |
||||||
*/ |
*/ |
||||||
|
|
||||||
#ifndef _MCUCONF_H_ |
#ifndef _MCUCONF_H_ |
||||||
#define _MCUCONF_H_ |
#define _MCUCONF_H_ |
||||||
|
|
||||||
/*
|
/*
|
||||||
* STM32F0xx drivers configuration. |
* STM32F0xx drivers configuration. |
||||||
* The following settings override the default settings present in |
* The following settings override the default settings present in |
||||||
* the various device driver implementation headers. |
* the various device driver implementation headers. |
||||||
* Note that the settings for each driver only have effect if the whole |
* Note that the settings for each driver only have effect if the whole |
||||||
* driver is enabled in halconf.h. |
* driver is enabled in halconf.h. |
||||||
* |
* |
||||||
* IRQ priorities: |
* IRQ priorities: |
||||||
* 3...0 Lowest...Highest. |
* 3...0 Lowest...Highest. |
||||||
* |
* |
||||||
* DMA priorities: |
* DMA priorities: |
||||||
* 0...3 Lowest...Highest. |
* 0...3 Lowest...Highest. |
||||||
*/ |
*/ |
||||||
|
|
||||||
#define STM32F0xx_MCUCONF |
#define STM32F0xx_MCUCONF |
||||||
|
|
||||||
/*
|
/*
|
||||||
* HAL driver system settings. |
* HAL driver system settings. |
||||||
*/ |
*/ |
||||||
#define STM32_NO_INIT FALSE |
#define STM32_NO_INIT FALSE |
||||||
#define STM32_PVD_ENABLE FALSE |
#define STM32_PVD_ENABLE FALSE |
||||||
#define STM32_PLS STM32_PLS_LEV0 |
#define STM32_PLS STM32_PLS_LEV0 |
||||||
#define STM32_HSI_ENABLED TRUE |
#define STM32_HSI_ENABLED TRUE |
||||||
#define STM32_HSI14_ENABLED TRUE |
#define STM32_HSI14_ENABLED TRUE |
||||||
#define STM32_HSI48_ENABLED FALSE |
#define STM32_HSI48_ENABLED FALSE |
||||||
#define STM32_LSI_ENABLED TRUE |
#define STM32_LSI_ENABLED TRUE |
||||||
#define STM32_HSE_ENABLED FALSE |
#define STM32_HSE_ENABLED FALSE |
||||||
#define STM32_LSE_ENABLED FALSE |
#define STM32_LSE_ENABLED FALSE |
||||||
#define STM32_SW STM32_SW_PLL |
#define STM32_SW STM32_SW_PLL |
||||||
#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2 |
#define STM32_PLLSRC STM32_PLLSRC_HSI_DIV2 |
||||||
#define STM32_PREDIV_VALUE 1 |
#define STM32_PREDIV_VALUE 1 |
||||||
#define STM32_PLLMUL_VALUE 12 |
#define STM32_PLLMUL_VALUE 12 |
||||||
#define STM32_HPRE STM32_HPRE_DIV1 |
#define STM32_HPRE STM32_HPRE_DIV1 |
||||||
#define STM32_PPRE STM32_PPRE_DIV1 |
#define STM32_PPRE STM32_PPRE_DIV1 |
||||||
#define STM32_ADCSW STM32_ADCSW_HSI14 |
#define STM32_ADCSW STM32_ADCSW_HSI14 |
||||||
#define STM32_ADCPRE STM32_ADCPRE_DIV4 |
#define STM32_ADCPRE STM32_ADCPRE_DIV4 |
||||||
#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK |
#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK |
||||||
#define STM32_ADCPRE STM32_ADCPRE_DIV4 |
#define STM32_ADCPRE STM32_ADCPRE_DIV4 |
||||||
#define STM32_ADCSW STM32_ADCSW_HSI14 |
#define STM32_ADCSW STM32_ADCSW_HSI14 |
||||||
#define STM32_USBSW STM32_USBSW_HSI48 |
#define STM32_USBSW STM32_USBSW_HSI48 |
||||||
#define STM32_CECSW STM32_CECSW_HSI |
#define STM32_CECSW STM32_CECSW_HSI |
||||||
#define STM32_I2C1SW STM32_I2C1SW_HSI |
#define STM32_I2C1SW STM32_I2C1SW_HSI |
||||||
#define STM32_USART1SW STM32_USART1SW_PCLK |
#define STM32_USART1SW STM32_USART1SW_PCLK |
||||||
#define STM32_RTCSEL STM32_RTCSEL_LSI |
#define STM32_RTCSEL STM32_RTCSEL_LSI |
||||||
|
|
||||||
/*
|
/*
|
||||||
* ADC driver system settings. |
* ADC driver system settings. |
||||||
*/ |
*/ |
||||||
#define STM32_ADC_USE_ADC1 FALSE |
#define STM32_ADC_USE_ADC1 FALSE |
||||||
#define STM32_ADC_ADC1_DMA_PRIORITY 2 |
#define STM32_ADC_ADC1_DMA_PRIORITY 2 |
||||||
#define STM32_ADC_IRQ_PRIORITY 2 |
#define STM32_ADC_IRQ_PRIORITY 2 |
||||||
#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 |
#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 2 |
||||||
|
|
||||||
/*
|
/*
|
||||||
* EXT driver system settings. |
* EXT driver system settings. |
||||||
*/ |
*/ |
||||||
#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3 |
#define STM32_EXT_EXTI0_1_IRQ_PRIORITY 3 |
||||||
#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3 |
#define STM32_EXT_EXTI2_3_IRQ_PRIORITY 3 |
||||||
#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3 |
#define STM32_EXT_EXTI4_15_IRQ_PRIORITY 3 |
||||||
#define STM32_EXT_EXTI16_IRQ_PRIORITY 3 |
#define STM32_EXT_EXTI16_IRQ_PRIORITY 3 |
||||||
#define STM32_EXT_EXTI17_IRQ_PRIORITY 3 |
#define STM32_EXT_EXTI17_IRQ_PRIORITY 3 |
||||||
|
|
||||||
/*
|
/*
|
||||||
* GPT driver system settings. |
* GPT driver system settings. |
||||||
*/ |
*/ |
||||||
#define STM32_GPT_USE_TIM1 FALSE |
#define STM32_GPT_USE_TIM1 FALSE |
||||||
#define STM32_GPT_USE_TIM2 FALSE |
#define STM32_GPT_USE_TIM2 FALSE |
||||||
#define STM32_GPT_USE_TIM3 FALSE |
#define STM32_GPT_USE_TIM3 FALSE |
||||||
#define STM32_GPT_USE_TIM14 FALSE |
#define STM32_GPT_USE_TIM14 FALSE |
||||||
#define STM32_GPT_TIM1_IRQ_PRIORITY 2 |
#define STM32_GPT_TIM1_IRQ_PRIORITY 2 |
||||||
#define STM32_GPT_TIM2_IRQ_PRIORITY 2 |
#define STM32_GPT_TIM2_IRQ_PRIORITY 2 |
||||||
#define STM32_GPT_TIM3_IRQ_PRIORITY 2 |
#define STM32_GPT_TIM3_IRQ_PRIORITY 2 |
||||||
#define STM32_GPT_TIM14_IRQ_PRIORITY 2 |
#define STM32_GPT_TIM14_IRQ_PRIORITY 2 |
||||||
|
|
||||||
/*
|
/*
|
||||||
* I2C driver system settings. |
* I2C driver system settings. |
||||||
*/ |
*/ |
||||||
#define STM32_I2C_USE_I2C1 FALSE |
#define STM32_I2C_USE_I2C1 FALSE |
||||||
#define STM32_I2C_USE_I2C2 FALSE |
#define STM32_I2C_USE_I2C2 FALSE |
||||||
#define STM32_I2C_BUSY_TIMEOUT 50 |
#define STM32_I2C_BUSY_TIMEOUT 50 |
||||||
#define STM32_I2C_I2C1_IRQ_PRIORITY 3 |
#define STM32_I2C_I2C1_IRQ_PRIORITY 3 |
||||||
#define STM32_I2C_I2C2_IRQ_PRIORITY 3 |
#define STM32_I2C_I2C2_IRQ_PRIORITY 3 |
||||||
#define STM32_I2C_USE_DMA TRUE |
#define STM32_I2C_USE_DMA TRUE |
||||||
#define STM32_I2C_I2C1_DMA_PRIORITY 1 |
#define STM32_I2C_I2C1_DMA_PRIORITY 1 |
||||||
#define STM32_I2C_I2C2_DMA_PRIORITY 1 |
#define STM32_I2C_I2C2_DMA_PRIORITY 1 |
||||||
#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") |
#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") |
||||||
|
|
||||||
/*
|
/*
|
||||||
* ICU driver system settings. |
* ICU driver system settings. |
||||||
*/ |
*/ |
||||||
#define STM32_ICU_USE_TIM1 FALSE |
#define STM32_ICU_USE_TIM1 FALSE |
||||||
#define STM32_ICU_USE_TIM2 FALSE |
#define STM32_ICU_USE_TIM2 FALSE |
||||||
#define STM32_ICU_USE_TIM3 FALSE |
#define STM32_ICU_USE_TIM3 FALSE |
||||||
#define STM32_ICU_TIM1_IRQ_PRIORITY 3 |
#define STM32_ICU_TIM1_IRQ_PRIORITY 3 |
||||||
#define STM32_ICU_TIM2_IRQ_PRIORITY 3 |
#define STM32_ICU_TIM2_IRQ_PRIORITY 3 |
||||||
#define STM32_ICU_TIM3_IRQ_PRIORITY 3 |
#define STM32_ICU_TIM3_IRQ_PRIORITY 3 |
||||||
|
|
||||||
/*
|
/*
|
||||||
* PWM driver system settings. |
* PWM driver system settings. |
||||||
*/ |
*/ |
||||||
#define STM32_PWM_USE_ADVANCED FALSE |
#define STM32_PWM_USE_ADVANCED FALSE |
||||||
#define STM32_PWM_USE_TIM1 FALSE |
#define STM32_PWM_USE_TIM1 FALSE |
||||||
#define STM32_PWM_USE_TIM2 FALSE |
#define STM32_PWM_USE_TIM2 FALSE |
||||||
#define STM32_PWM_USE_TIM3 FALSE |
#define STM32_PWM_USE_TIM3 FALSE |
||||||
#define STM32_PWM_TIM1_IRQ_PRIORITY 3 |
#define STM32_PWM_TIM1_IRQ_PRIORITY 3 |
||||||
#define STM32_PWM_TIM2_IRQ_PRIORITY 3 |
#define STM32_PWM_TIM2_IRQ_PRIORITY 3 |
||||||
#define STM32_PWM_TIM3_IRQ_PRIORITY 3 |
#define STM32_PWM_TIM3_IRQ_PRIORITY 3 |
||||||
|
|
||||||
/*
|
/*
|
||||||
* SERIAL driver system settings. |
* SERIAL driver system settings. |
||||||
*/ |
*/ |
||||||
#define STM32_SERIAL_USE_USART1 FALSE |
#define STM32_SERIAL_USE_USART1 FALSE |
||||||
#define STM32_SERIAL_USE_USART2 FALSE |
#define STM32_SERIAL_USE_USART2 FALSE |
||||||
#define STM32_SERIAL_USART1_PRIORITY 3 |
#define STM32_SERIAL_USART1_PRIORITY 3 |
||||||
#define STM32_SERIAL_USART2_PRIORITY 3 |
#define STM32_SERIAL_USART2_PRIORITY 3 |
||||||
|
|
||||||
/*
|
/*
|
||||||
* SPI driver system settings. |
* SPI driver system settings. |
||||||
*/ |
*/ |
||||||
#define STM32_SPI_USE_SPI1 FALSE |
#define STM32_SPI_USE_SPI1 FALSE |
||||||
#define STM32_SPI_USE_SPI2 FALSE |
#define STM32_SPI_USE_SPI2 FALSE |
||||||
#define STM32_SPI_SPI1_DMA_PRIORITY 1 |
#define STM32_SPI_SPI1_DMA_PRIORITY 1 |
||||||
#define STM32_SPI_SPI2_DMA_PRIORITY 1 |
#define STM32_SPI_SPI2_DMA_PRIORITY 1 |
||||||
#define STM32_SPI_SPI1_IRQ_PRIORITY 2 |
#define STM32_SPI_SPI1_IRQ_PRIORITY 2 |
||||||
#define STM32_SPI_SPI2_IRQ_PRIORITY 2 |
#define STM32_SPI_SPI2_IRQ_PRIORITY 2 |
||||||
#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") |
#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") |
||||||
|
|
||||||
/*
|
/*
|
||||||
* ST driver system settings. |
* ST driver system settings. |
||||||
*/ |
*/ |
||||||
#define STM32_ST_IRQ_PRIORITY 2 |
#define STM32_ST_IRQ_PRIORITY 2 |
||||||
#define STM32_ST_USE_TIMER 2 |
#define STM32_ST_USE_TIMER 2 |
||||||
|
|
||||||
/*
|
/*
|
||||||
* UART driver system settings. |
* UART driver system settings. |
||||||
*/ |
*/ |
||||||
#define STM32_UART_USE_USART1 FALSE |
#define STM32_UART_USE_USART1 FALSE |
||||||
#define STM32_UART_USE_USART2 FALSE |
#define STM32_UART_USE_USART2 FALSE |
||||||
#define STM32_UART_USART1_IRQ_PRIORITY 3 |
#define STM32_UART_USART1_IRQ_PRIORITY 3 |
||||||
#define STM32_UART_USART2_IRQ_PRIORITY 3 |
#define STM32_UART_USART2_IRQ_PRIORITY 3 |
||||||
#define STM32_UART_USART1_DMA_PRIORITY 0 |
#define STM32_UART_USART1_DMA_PRIORITY 0 |
||||||
#define STM32_UART_USART2_DMA_PRIORITY 0 |
#define STM32_UART_USART2_DMA_PRIORITY 0 |
||||||
#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") |
#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") |
||||||
|
|
||||||
/*
|
/*
|
||||||
* USB driver system settings. |
* USB driver system settings. |
||||||
*/ |
*/ |
||||||
#define STM32_USB_USE_USB1 TRUE |
#define STM32_USB_USE_USB1 TRUE |
||||||
#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE |
#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE |
||||||
#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 |
#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 |
||||||
|
|
||||||
#endif /* _MCUCONF_H_ */ |
#endif /* _MCUCONF_H_ */ |
||||||
|
@ -0,0 +1,41 @@ |
|||||||
|
# project specific files
|
||||||
|
SRC = matrix.c \
|
||||||
|
led.c
|
||||||
|
|
||||||
|
## chip/board settings
|
||||||
|
# the next two should match the directories in
|
||||||
|
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||||
|
MCU_FAMILY = STM32
|
||||||
|
MCU_SERIES = STM32F0xx
|
||||||
|
# linker script to use
|
||||||
|
# it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
|
||||||
|
# or <this_dir>/ld/
|
||||||
|
MCU_LDSCRIPT = STM32F072xB
|
||||||
|
# startup code to use
|
||||||
|
# is should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
|
||||||
|
MCU_STARTUP = stm32f0xx
|
||||||
|
# it should exist either in <chibios>/os/hal/boards/
|
||||||
|
# or <this_dir>/boards
|
||||||
|
BOARD = ST_STM32F072B_DISCOVERY
|
||||||
|
# Cortex version
|
||||||
|
# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4
|
||||||
|
MCU = cortex-m0
|
||||||
|
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||||
|
ARMV = 6
|
||||||
|
# If you want to be able to jump to bootloader from firmware on STM32 MCUs,
|
||||||
|
# set the correct BOOTLOADER_ADDRESS. Either set it here, or define it in
|
||||||
|
# ./bootloader_defs.h or in ./boards/<FOO>/bootloader_defs.h (if you have
|
||||||
|
# a custom board definition that you plan to reuse).
|
||||||
|
# If you're not setting it here, leave it commented out.
|
||||||
|
# It is chip dependent, the correct number can be looked up here (page 175):
|
||||||
|
# http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
|
||||||
|
# This also requires a patch to chibios:
|
||||||
|
# <tmk_dir>/tmk_core/tool/chibios/ch-bootloader-jump.patch
|
||||||
|
#STM32_BOOTLOADER_ADDRESS = 0x1FFFC800
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# comment out to disable the options.
|
||||||
|
#
|
||||||
|
ifndef QUANTUM_DIR |
||||||
|
include ../../../Makefile
|
||||||
|
endif |
@ -1,52 +1,3 @@ |
|||||||
# project specific files
|
ifndef MAKEFILE_INCLUDED |
||||||
SRC = matrix.c \
|
|
||||||
led.c
|
|
||||||
|
|
||||||
# GENERIC STM32F103C8T6 board - stm32duino bootloader
|
|
||||||
OPT_DEFS = -DCORTEX_VTOR_INIT=0x2000
|
|
||||||
MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader
|
|
||||||
BOARD = GENERIC_STM32_F103
|
|
||||||
|
|
||||||
# GENERIC STM32F103C8T6 board - no bootloader (programmer over serial or SWD)
|
|
||||||
# OPT_DEFS =
|
|
||||||
# MCU_LDSCRIPT = STM32F103x8
|
|
||||||
# BOARD = GENERIC_STM32_F103
|
|
||||||
|
|
||||||
# MAPLE MINI
|
|
||||||
# OPT_DEFS = -DCORTEX_VTOR_INIT=0x5000
|
|
||||||
# MCU_LDSCRIPT = STM32F103xB_maplemini_bootloader
|
|
||||||
# BOARD = MAPLEMINI_STM32_F103
|
|
||||||
|
|
||||||
## chip/board settings
|
|
||||||
# the next two should match the directories in
|
|
||||||
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
|
||||||
MCU_FAMILY = STM32
|
|
||||||
MCU_SERIES = STM32F1xx
|
|
||||||
# linker script to use
|
|
||||||
# it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
|
|
||||||
# or <this_dir>/ld/
|
|
||||||
# startup code to use
|
|
||||||
# is should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
|
|
||||||
MCU_STARTUP = stm32f1xx
|
|
||||||
# it should exist either in <chibios>/os/hal/boards/
|
|
||||||
# or <this_dir>/boards
|
|
||||||
# Cortex version
|
|
||||||
# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4
|
|
||||||
MCU = cortex-m3
|
|
||||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
|
||||||
ARMV = 7
|
|
||||||
# If you want to be able to jump to bootloader from firmware on STM32 MCUs,
|
|
||||||
# set the correct BOOTLOADER_ADDRESS. Either set it here, or define it in
|
|
||||||
# ./bootloader_defs.h or in ./boards/<FOO>/bootloader_defs.h (if you have
|
|
||||||
# a custom board definition that you plan to reuse).
|
|
||||||
# If you're not setting it here, leave it commented out.
|
|
||||||
# It is chip dependent, the correct number can be looked up here (page 175):
|
|
||||||
# http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
|
|
||||||
# This also requires a patch to chibios:
|
|
||||||
# <tmk_dir>/tmk_core/tool/chibios/ch-bootloader-jump.patch
|
|
||||||
#STM32_BOOTLOADER_ADDRESS = 0x1FFFC800
|
|
||||||
|
|
||||||
|
|
||||||
ifndef QUANTUM_DIR |
|
||||||
include ../../../Makefile
|
include ../../../Makefile
|
||||||
endif |
endif |
@ -1,209 +1,209 @@ |
|||||||
/*
|
/*
|
||||||
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio |
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio |
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); |
Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
you may not use this file except in compliance with the License. |
you may not use this file except in compliance with the License. |
||||||
You may obtain a copy of the License at |
You may obtain a copy of the License at |
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software |
Unless required by applicable law or agreed to in writing, software |
||||||
distributed under the License is distributed on an "AS IS" BASIS, |
distributed under the License is distributed on an "AS IS" BASIS, |
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
See the License for the specific language governing permissions and |
See the License for the specific language governing permissions and |
||||||
limitations under the License. |
limitations under the License. |
||||||
*/ |
*/ |
||||||
|
|
||||||
#ifndef _MCUCONF_H_ |
#ifndef _MCUCONF_H_ |
||||||
#define _MCUCONF_H_ |
#define _MCUCONF_H_ |
||||||
|
|
||||||
#define STM32F103_MCUCONF |
#define STM32F103_MCUCONF |
||||||
|
|
||||||
/*
|
/*
|
||||||
* STM32F103 drivers configuration. |
* STM32F103 drivers configuration. |
||||||
* The following settings override the default settings present in |
* The following settings override the default settings present in |
||||||
* the various device driver implementation headers. |
* the various device driver implementation headers. |
||||||
* Note that the settings for each driver only have effect if the whole |
* Note that the settings for each driver only have effect if the whole |
||||||
* driver is enabled in halconf.h. |
* driver is enabled in halconf.h. |
||||||
* |
* |
||||||
* IRQ priorities: |
* IRQ priorities: |
||||||
* 15...0 Lowest...Highest. |
* 15...0 Lowest...Highest. |
||||||
* |
* |
||||||
* DMA priorities: |
* DMA priorities: |
||||||
* 0...3 Lowest...Highest. |
* 0...3 Lowest...Highest. |
||||||
*/ |
*/ |
||||||
|
|
||||||
/*
|
/*
|
||||||
* HAL driver system settings. |
* HAL driver system settings. |
||||||
*/ |
*/ |
||||||
#define STM32_NO_INIT FALSE |
#define STM32_NO_INIT FALSE |
||||||
#define STM32_HSI_ENABLED TRUE |
#define STM32_HSI_ENABLED TRUE |
||||||
#define STM32_LSI_ENABLED FALSE |
#define STM32_LSI_ENABLED FALSE |
||||||
#define STM32_HSE_ENABLED TRUE |
#define STM32_HSE_ENABLED TRUE |
||||||
#define STM32_LSE_ENABLED FALSE |
#define STM32_LSE_ENABLED FALSE |
||||||
#define STM32_SW STM32_SW_PLL |
#define STM32_SW STM32_SW_PLL |
||||||
#define STM32_PLLSRC STM32_PLLSRC_HSE |
#define STM32_PLLSRC STM32_PLLSRC_HSE |
||||||
#define STM32_PLLXTPRE STM32_PLLXTPRE_DIV1 |
#define STM32_PLLXTPRE STM32_PLLXTPRE_DIV1 |
||||||
#define STM32_PLLMUL_VALUE 9 |
#define STM32_PLLMUL_VALUE 9 |
||||||
#define STM32_HPRE STM32_HPRE_DIV1 |
#define STM32_HPRE STM32_HPRE_DIV1 |
||||||
#define STM32_PPRE1 STM32_PPRE1_DIV2 |
#define STM32_PPRE1 STM32_PPRE1_DIV2 |
||||||
#define STM32_PPRE2 STM32_PPRE2_DIV2 |
#define STM32_PPRE2 STM32_PPRE2_DIV2 |
||||||
#define STM32_ADCPRE STM32_ADCPRE_DIV4 |
#define STM32_ADCPRE STM32_ADCPRE_DIV4 |
||||||
#define STM32_USB_CLOCK_REQUIRED TRUE |
#define STM32_USB_CLOCK_REQUIRED TRUE |
||||||
#define STM32_USBPRE STM32_USBPRE_DIV1P5 |
#define STM32_USBPRE STM32_USBPRE_DIV1P5 |
||||||
#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK |
#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK |
||||||
#define STM32_RTCSEL STM32_RTCSEL_HSEDIV |
#define STM32_RTCSEL STM32_RTCSEL_HSEDIV |
||||||
#define STM32_PVD_ENABLE FALSE |
#define STM32_PVD_ENABLE FALSE |
||||||
#define STM32_PLS STM32_PLS_LEV0 |
#define STM32_PLS STM32_PLS_LEV0 |
||||||
|
|
||||||
/*
|
/*
|
||||||
* ADC driver system settings. |
* ADC driver system settings. |
||||||
*/ |
*/ |
||||||
#define STM32_ADC_USE_ADC1 FALSE |
#define STM32_ADC_USE_ADC1 FALSE |
||||||
#define STM32_ADC_ADC1_DMA_PRIORITY 2 |
#define STM32_ADC_ADC1_DMA_PRIORITY 2 |
||||||
#define STM32_ADC_ADC1_IRQ_PRIORITY 6 |
#define STM32_ADC_ADC1_IRQ_PRIORITY 6 |
||||||
|
|
||||||
/*
|
/*
|
||||||
* CAN driver system settings. |
* CAN driver system settings. |
||||||
*/ |
*/ |
||||||
#define STM32_CAN_USE_CAN1 FALSE |
#define STM32_CAN_USE_CAN1 FALSE |
||||||
#define STM32_CAN_CAN1_IRQ_PRIORITY 11 |
#define STM32_CAN_CAN1_IRQ_PRIORITY 11 |
||||||
|
|
||||||
/*
|
/*
|
||||||
* EXT driver system settings. |
* EXT driver system settings. |
||||||
*/ |
*/ |
||||||
#define STM32_EXT_EXTI0_IRQ_PRIORITY 6 |
#define STM32_EXT_EXTI0_IRQ_PRIORITY 6 |
||||||
#define STM32_EXT_EXTI1_IRQ_PRIORITY 6 |
#define STM32_EXT_EXTI1_IRQ_PRIORITY 6 |
||||||
#define STM32_EXT_EXTI2_IRQ_PRIORITY 6 |
#define STM32_EXT_EXTI2_IRQ_PRIORITY 6 |
||||||
#define STM32_EXT_EXTI3_IRQ_PRIORITY 6 |
#define STM32_EXT_EXTI3_IRQ_PRIORITY 6 |
||||||
#define STM32_EXT_EXTI4_IRQ_PRIORITY 6 |
#define STM32_EXT_EXTI4_IRQ_PRIORITY 6 |
||||||
#define STM32_EXT_EXTI5_9_IRQ_PRIORITY 6 |
#define STM32_EXT_EXTI5_9_IRQ_PRIORITY 6 |
||||||
#define STM32_EXT_EXTI10_15_IRQ_PRIORITY 6 |
#define STM32_EXT_EXTI10_15_IRQ_PRIORITY 6 |
||||||
#define STM32_EXT_EXTI16_IRQ_PRIORITY 6 |
#define STM32_EXT_EXTI16_IRQ_PRIORITY 6 |
||||||
#define STM32_EXT_EXTI17_IRQ_PRIORITY 6 |
#define STM32_EXT_EXTI17_IRQ_PRIORITY 6 |
||||||
#define STM32_EXT_EXTI18_IRQ_PRIORITY 6 |
#define STM32_EXT_EXTI18_IRQ_PRIORITY 6 |
||||||
#define STM32_EXT_EXTI19_IRQ_PRIORITY 6 |
#define STM32_EXT_EXTI19_IRQ_PRIORITY 6 |
||||||
|
|
||||||
/*
|
/*
|
||||||
* GPT driver system settings. |
* GPT driver system settings. |
||||||
*/ |
*/ |
||||||
#define STM32_GPT_USE_TIM1 FALSE |
#define STM32_GPT_USE_TIM1 FALSE |
||||||
#define STM32_GPT_USE_TIM2 FALSE |
#define STM32_GPT_USE_TIM2 FALSE |
||||||
#define STM32_GPT_USE_TIM3 FALSE |
#define STM32_GPT_USE_TIM3 FALSE |
||||||
#define STM32_GPT_USE_TIM4 FALSE |
#define STM32_GPT_USE_TIM4 FALSE |
||||||
#define STM32_GPT_USE_TIM5 FALSE |
#define STM32_GPT_USE_TIM5 FALSE |
||||||
#define STM32_GPT_USE_TIM8 FALSE |
#define STM32_GPT_USE_TIM8 FALSE |
||||||
#define STM32_GPT_TIM1_IRQ_PRIORITY 7 |
#define STM32_GPT_TIM1_IRQ_PRIORITY 7 |
||||||
#define STM32_GPT_TIM2_IRQ_PRIORITY 7 |
#define STM32_GPT_TIM2_IRQ_PRIORITY 7 |
||||||
#define STM32_GPT_TIM3_IRQ_PRIORITY 7 |
#define STM32_GPT_TIM3_IRQ_PRIORITY 7 |
||||||
#define STM32_GPT_TIM4_IRQ_PRIORITY 7 |
#define STM32_GPT_TIM4_IRQ_PRIORITY 7 |
||||||
#define STM32_GPT_TIM5_IRQ_PRIORITY 7 |
#define STM32_GPT_TIM5_IRQ_PRIORITY 7 |
||||||
#define STM32_GPT_TIM8_IRQ_PRIORITY 7 |
#define STM32_GPT_TIM8_IRQ_PRIORITY 7 |
||||||
|
|
||||||
/*
|
/*
|
||||||
* I2C driver system settings. |
* I2C driver system settings. |
||||||
*/ |
*/ |
||||||
#define STM32_I2C_USE_I2C1 FALSE |
#define STM32_I2C_USE_I2C1 FALSE |
||||||
#define STM32_I2C_USE_I2C2 FALSE |
#define STM32_I2C_USE_I2C2 FALSE |
||||||
#define STM32_I2C_BUSY_TIMEOUT 50 |
#define STM32_I2C_BUSY_TIMEOUT 50 |
||||||
#define STM32_I2C_I2C1_IRQ_PRIORITY 5 |
#define STM32_I2C_I2C1_IRQ_PRIORITY 5 |
||||||
#define STM32_I2C_I2C2_IRQ_PRIORITY 5 |
#define STM32_I2C_I2C2_IRQ_PRIORITY 5 |
||||||
#define STM32_I2C_I2C1_DMA_PRIORITY 3 |
#define STM32_I2C_I2C1_DMA_PRIORITY 3 |
||||||
#define STM32_I2C_I2C2_DMA_PRIORITY 3 |
#define STM32_I2C_I2C2_DMA_PRIORITY 3 |
||||||
#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") |
#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") |
||||||
|
|
||||||
/*
|
/*
|
||||||
* ICU driver system settings. |
* ICU driver system settings. |
||||||
*/ |
*/ |
||||||
#define STM32_ICU_USE_TIM1 FALSE |
#define STM32_ICU_USE_TIM1 FALSE |
||||||
#define STM32_ICU_USE_TIM2 FALSE |
#define STM32_ICU_USE_TIM2 FALSE |
||||||
#define STM32_ICU_USE_TIM3 FALSE |
#define STM32_ICU_USE_TIM3 FALSE |
||||||
#define STM32_ICU_USE_TIM4 FALSE |
#define STM32_ICU_USE_TIM4 FALSE |
||||||
#define STM32_ICU_USE_TIM5 FALSE |
#define STM32_ICU_USE_TIM5 FALSE |
||||||
#define STM32_ICU_USE_TIM8 FALSE |
#define STM32_ICU_USE_TIM8 FALSE |
||||||
#define STM32_ICU_TIM1_IRQ_PRIORITY 7 |
#define STM32_ICU_TIM1_IRQ_PRIORITY 7 |
||||||
#define STM32_ICU_TIM2_IRQ_PRIORITY 7 |
#define STM32_ICU_TIM2_IRQ_PRIORITY 7 |
||||||
#define STM32_ICU_TIM3_IRQ_PRIORITY 7 |
#define STM32_ICU_TIM3_IRQ_PRIORITY 7 |
||||||
#define STM32_ICU_TIM4_IRQ_PRIORITY 7 |
#define STM32_ICU_TIM4_IRQ_PRIORITY 7 |
||||||
#define STM32_ICU_TIM5_IRQ_PRIORITY 7 |
#define STM32_ICU_TIM5_IRQ_PRIORITY 7 |
||||||
#define STM32_ICU_TIM8_IRQ_PRIORITY 7 |
#define STM32_ICU_TIM8_IRQ_PRIORITY 7 |
||||||
|
|
||||||
/*
|
/*
|
||||||
* PWM driver system settings. |
* PWM driver system settings. |
||||||
*/ |
*/ |
||||||
#define STM32_PWM_USE_ADVANCED FALSE |
#define STM32_PWM_USE_ADVANCED FALSE |
||||||
#define STM32_PWM_USE_TIM1 FALSE |
#define STM32_PWM_USE_TIM1 FALSE |
||||||
#define STM32_PWM_USE_TIM2 FALSE |
#define STM32_PWM_USE_TIM2 FALSE |
||||||
#define STM32_PWM_USE_TIM3 FALSE |
#define STM32_PWM_USE_TIM3 FALSE |
||||||
#define STM32_PWM_USE_TIM4 FALSE |
#define STM32_PWM_USE_TIM4 FALSE |
||||||
#define STM32_PWM_USE_TIM5 FALSE |
#define STM32_PWM_USE_TIM5 FALSE |
||||||
#define STM32_PWM_USE_TIM8 FALSE |
#define STM32_PWM_USE_TIM8 FALSE |
||||||
#define STM32_PWM_TIM1_IRQ_PRIORITY 7 |
#define STM32_PWM_TIM1_IRQ_PRIORITY 7 |
||||||
#define STM32_PWM_TIM2_IRQ_PRIORITY 7 |
#define STM32_PWM_TIM2_IRQ_PRIORITY 7 |
||||||
#define STM32_PWM_TIM3_IRQ_PRIORITY 7 |
#define STM32_PWM_TIM3_IRQ_PRIORITY 7 |
||||||
#define STM32_PWM_TIM4_IRQ_PRIORITY 7 |
#define STM32_PWM_TIM4_IRQ_PRIORITY 7 |
||||||
#define STM32_PWM_TIM5_IRQ_PRIORITY 7 |
#define STM32_PWM_TIM5_IRQ_PRIORITY 7 |
||||||
#define STM32_PWM_TIM8_IRQ_PRIORITY 7 |
#define STM32_PWM_TIM8_IRQ_PRIORITY 7 |
||||||
|
|
||||||
/*
|
/*
|
||||||
* RTC driver system settings. |
* RTC driver system settings. |
||||||
*/ |
*/ |
||||||
#define STM32_RTC_IRQ_PRIORITY 15 |
#define STM32_RTC_IRQ_PRIORITY 15 |
||||||
|
|
||||||
/*
|
/*
|
||||||
* SERIAL driver system settings. |
* SERIAL driver system settings. |
||||||
*/ |
*/ |
||||||
#define STM32_SERIAL_USE_USART1 FALSE |
#define STM32_SERIAL_USE_USART1 FALSE |
||||||
#define STM32_SERIAL_USE_USART2 FALSE |
#define STM32_SERIAL_USE_USART2 FALSE |
||||||
#define STM32_SERIAL_USE_USART3 FALSE |
#define STM32_SERIAL_USE_USART3 FALSE |
||||||
#define STM32_SERIAL_USE_UART4 FALSE |
#define STM32_SERIAL_USE_UART4 FALSE |
||||||
#define STM32_SERIAL_USE_UART5 FALSE |
#define STM32_SERIAL_USE_UART5 FALSE |
||||||
#define STM32_SERIAL_USART1_PRIORITY 12 |
#define STM32_SERIAL_USART1_PRIORITY 12 |
||||||
#define STM32_SERIAL_USART2_PRIORITY 12 |
#define STM32_SERIAL_USART2_PRIORITY 12 |
||||||
#define STM32_SERIAL_USART3_PRIORITY 12 |
#define STM32_SERIAL_USART3_PRIORITY 12 |
||||||
#define STM32_SERIAL_UART4_PRIORITY 12 |
#define STM32_SERIAL_UART4_PRIORITY 12 |
||||||
#define STM32_SERIAL_UART5_PRIORITY 12 |
#define STM32_SERIAL_UART5_PRIORITY 12 |
||||||
|
|
||||||
/*
|
/*
|
||||||
* SPI driver system settings. |
* SPI driver system settings. |
||||||
*/ |
*/ |
||||||
#define STM32_SPI_USE_SPI1 FALSE |
#define STM32_SPI_USE_SPI1 FALSE |
||||||
#define STM32_SPI_USE_SPI2 FALSE |
#define STM32_SPI_USE_SPI2 FALSE |
||||||
#define STM32_SPI_USE_SPI3 FALSE |
#define STM32_SPI_USE_SPI3 FALSE |
||||||
#define STM32_SPI_SPI1_DMA_PRIORITY 1 |
#define STM32_SPI_SPI1_DMA_PRIORITY 1 |
||||||
#define STM32_SPI_SPI2_DMA_PRIORITY 1 |
#define STM32_SPI_SPI2_DMA_PRIORITY 1 |
||||||
#define STM32_SPI_SPI3_DMA_PRIORITY 1 |
#define STM32_SPI_SPI3_DMA_PRIORITY 1 |
||||||
#define STM32_SPI_SPI1_IRQ_PRIORITY 10 |
#define STM32_SPI_SPI1_IRQ_PRIORITY 10 |
||||||
#define STM32_SPI_SPI2_IRQ_PRIORITY 10 |
#define STM32_SPI_SPI2_IRQ_PRIORITY 10 |
||||||
#define STM32_SPI_SPI3_IRQ_PRIORITY 10 |
#define STM32_SPI_SPI3_IRQ_PRIORITY 10 |
||||||
#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") |
#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure") |
||||||
|
|
||||||
/*
|
/*
|
||||||
* ST driver system settings. |
* ST driver system settings. |
||||||
*/ |
*/ |
||||||
#define STM32_ST_IRQ_PRIORITY 8 |
#define STM32_ST_IRQ_PRIORITY 8 |
||||||
#define STM32_ST_USE_TIMER 2 |
#define STM32_ST_USE_TIMER 2 |
||||||
|
|
||||||
/*
|
/*
|
||||||
* UART driver system settings. |
* UART driver system settings. |
||||||
*/ |
*/ |
||||||
#define STM32_UART_USE_USART1 FALSE |
#define STM32_UART_USE_USART1 FALSE |
||||||
#define STM32_UART_USE_USART2 FALSE |
#define STM32_UART_USE_USART2 FALSE |
||||||
#define STM32_UART_USE_USART3 FALSE |
#define STM32_UART_USE_USART3 FALSE |
||||||
#define STM32_UART_USART1_IRQ_PRIORITY 12 |
#define STM32_UART_USART1_IRQ_PRIORITY 12 |
||||||
#define STM32_UART_USART2_IRQ_PRIORITY 12 |
#define STM32_UART_USART2_IRQ_PRIORITY 12 |
||||||
#define STM32_UART_USART3_IRQ_PRIORITY 12 |
#define STM32_UART_USART3_IRQ_PRIORITY 12 |
||||||
#define STM32_UART_USART1_DMA_PRIORITY 0 |
#define STM32_UART_USART1_DMA_PRIORITY 0 |
||||||
#define STM32_UART_USART2_DMA_PRIORITY 0 |
#define STM32_UART_USART2_DMA_PRIORITY 0 |
||||||
#define STM32_UART_USART3_DMA_PRIORITY 0 |
#define STM32_UART_USART3_DMA_PRIORITY 0 |
||||||
#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") |
#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure") |
||||||
|
|
||||||
/*
|
/*
|
||||||
* USB driver system settings. |
* USB driver system settings. |
||||||
*/ |
*/ |
||||||
#define STM32_USB_USE_USB1 TRUE |
#define STM32_USB_USE_USB1 TRUE |
||||||
#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE |
#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE |
||||||
#define STM32_USB_USB1_HP_IRQ_PRIORITY 13 |
#define STM32_USB_USB1_HP_IRQ_PRIORITY 13 |
||||||
#define STM32_USB_USB1_LP_IRQ_PRIORITY 14 |
#define STM32_USB_USB1_LP_IRQ_PRIORITY 14 |
||||||
|
|
||||||
#endif /* _MCUCONF_H_ */ |
#endif /* _MCUCONF_H_ */ |
||||||
|
@ -0,0 +1,52 @@ |
|||||||
|
# project specific files
|
||||||
|
SRC = matrix.c \
|
||||||
|
led.c
|
||||||
|
|
||||||
|
# GENERIC STM32F103C8T6 board - stm32duino bootloader
|
||||||
|
OPT_DEFS = -DCORTEX_VTOR_INIT=0x2000
|
||||||
|
MCU_LDSCRIPT = STM32F103x8_stm32duino_bootloader
|
||||||
|
BOARD = GENERIC_STM32_F103
|
||||||
|
|
||||||
|
# GENERIC STM32F103C8T6 board - no bootloader (programmer over serial or SWD)
|
||||||
|
# OPT_DEFS =
|
||||||
|
# MCU_LDSCRIPT = STM32F103x8
|
||||||
|
# BOARD = GENERIC_STM32_F103
|
||||||
|
|
||||||
|
# MAPLE MINI
|
||||||
|
# OPT_DEFS = -DCORTEX_VTOR_INIT=0x5000
|
||||||
|
# MCU_LDSCRIPT = STM32F103xB_maplemini_bootloader
|
||||||
|
# BOARD = MAPLEMINI_STM32_F103
|
||||||
|
|
||||||
|
## chip/board settings
|
||||||
|
# the next two should match the directories in
|
||||||
|
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||||
|
MCU_FAMILY = STM32
|
||||||
|
MCU_SERIES = STM32F1xx
|
||||||
|
# linker script to use
|
||||||
|
# it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
|
||||||
|
# or <this_dir>/ld/
|
||||||
|
# startup code to use
|
||||||
|
# is should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
|
||||||
|
MCU_STARTUP = stm32f1xx
|
||||||
|
# it should exist either in <chibios>/os/hal/boards/
|
||||||
|
# or <this_dir>/boards
|
||||||
|
# Cortex version
|
||||||
|
# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4
|
||||||
|
MCU = cortex-m3
|
||||||
|
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||||
|
ARMV = 7
|
||||||
|
# If you want to be able to jump to bootloader from firmware on STM32 MCUs,
|
||||||
|
# set the correct BOOTLOADER_ADDRESS. Either set it here, or define it in
|
||||||
|
# ./bootloader_defs.h or in ./boards/<FOO>/bootloader_defs.h (if you have
|
||||||
|
# a custom board definition that you plan to reuse).
|
||||||
|
# If you're not setting it here, leave it commented out.
|
||||||
|
# It is chip dependent, the correct number can be looked up here (page 175):
|
||||||
|
# http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf
|
||||||
|
# This also requires a patch to chibios:
|
||||||
|
# <tmk_dir>/tmk_core/tool/chibios/ch-bootloader-jump.patch
|
||||||
|
#STM32_BOOTLOADER_ADDRESS = 0x1FFFC800
|
||||||
|
|
||||||
|
|
||||||
|
ifndef QUANTUM_DIR |
||||||
|
include ../../../Makefile
|
||||||
|
endif |
@ -1,49 +1,3 @@ |
|||||||
# project specific files
|
ifndef MAKEFILE_INCLUDED |
||||||
SRC = matrix.c \
|
|
||||||
led.c
|
|
||||||
|
|
||||||
## chip/board settings
|
|
||||||
# - the next two should match the directories in
|
|
||||||
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
|
||||||
# - For Teensies, FAMILY = KINETIS and SERIES is either
|
|
||||||
# KL2x (LC) or K20x (3.0,3.1,3.2).
|
|
||||||
MCU_FAMILY = KINETIS
|
|
||||||
MCU_SERIES = KL2x
|
|
||||||
|
|
||||||
# Linker script to use
|
|
||||||
# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
|
|
||||||
# or <this_dir>/ld/
|
|
||||||
# - NOTE: a custom ld script is needed for EEPROM on Teensy LC
|
|
||||||
# - LDSCRIPT =
|
|
||||||
# - MKL26Z64 for Teensy LC
|
|
||||||
# - MK20DX128 for Teensy 3.0
|
|
||||||
# - MK20DX256 for Teensy 3.1 and 3.2
|
|
||||||
MCU_LDSCRIPT = MKL26Z64
|
|
||||||
|
|
||||||
# Startup code to use
|
|
||||||
# - it should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
|
|
||||||
# - STARTUP =
|
|
||||||
# - kl2x for Teensy LC
|
|
||||||
# - k20x5 for Teensy 3.0
|
|
||||||
# - k20x7 for Teensy 3.1 and 3.2
|
|
||||||
MCU_STARTUP = kl2x
|
|
||||||
|
|
||||||
# Board: it should exist either in <chibios>/os/hal/boards/
|
|
||||||
# or <this_dir>/boards
|
|
||||||
# - BOARD =
|
|
||||||
# - PJRC_TEENSY_LC for Teensy LC
|
|
||||||
# - PJRC_TEENSY_3 for Teensy 3.0
|
|
||||||
# - PJRC_TEENSY_3_1 for Teensy 3.1 or 3.2
|
|
||||||
BOARD = PJRC_TEENSY_LC
|
|
||||||
|
|
||||||
# Cortex version
|
|
||||||
# Teensy LC is cortex-m0plus; Teensy 3.x are cortex-m4
|
|
||||||
MCU = cortex-m0plus
|
|
||||||
|
|
||||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
|
||||||
# I.e. 6 for Teensy LC; 7 for Teensy 3.x
|
|
||||||
ARMV = 6
|
|
||||||
|
|
||||||
ifndef QUANTUM_DIR |
|
||||||
include ../../../Makefile
|
include ../../../Makefile
|
||||||
endif |
endif |
File diff suppressed because it is too large
Load Diff
@ -1,187 +1,187 @@ |
|||||||
/*
|
/*
|
||||||
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio |
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio |
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); |
Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
you may not use this file except in compliance with the License. |
you may not use this file except in compliance with the License. |
||||||
You may obtain a copy of the License at |
You may obtain a copy of the License at |
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software |
Unless required by applicable law or agreed to in writing, software |
||||||
distributed under the License is distributed on an "AS IS" BASIS, |
distributed under the License is distributed on an "AS IS" BASIS, |
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
See the License for the specific language governing permissions and |
See the License for the specific language governing permissions and |
||||||
limitations under the License. |
limitations under the License. |
||||||
*/ |
*/ |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @file templates/halconf.h |
* @file templates/halconf.h |
||||||
* @brief HAL configuration header. |
* @brief HAL configuration header. |
||||||
* @details HAL configuration file, this file allows to enable or disable the |
* @details HAL configuration file, this file allows to enable or disable the |
||||||
* various device drivers from your application. You may also use |
* various device drivers from your application. You may also use |
||||||
* this file in order to override the device drivers default settings. |
* this file in order to override the device drivers default settings. |
||||||
* |
* |
||||||
* @addtogroup HAL_CONF |
* @addtogroup HAL_CONF |
||||||
* @{ |
* @{ |
||||||
*/ |
*/ |
||||||
|
|
||||||
#ifndef _HALCONF_H_ |
#ifndef _HALCONF_H_ |
||||||
#define _HALCONF_H_ |
#define _HALCONF_H_ |
||||||
|
|
||||||
#include "mcuconf.h" |
#include "mcuconf.h" |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the PAL subsystem. |
* @brief Enables the PAL subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_PAL TRUE |
#define HAL_USE_PAL TRUE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the ADC subsystem. |
* @brief Enables the ADC subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_ADC FALSE |
#define HAL_USE_ADC FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the CAN subsystem. |
* @brief Enables the CAN subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_CAN FALSE |
#define HAL_USE_CAN FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the DAC subsystem. |
* @brief Enables the DAC subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_DAC FALSE |
#define HAL_USE_DAC FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the EXT subsystem. |
* @brief Enables the EXT subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_EXT FALSE |
#define HAL_USE_EXT FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the GPT subsystem. |
* @brief Enables the GPT subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_GPT FALSE |
#define HAL_USE_GPT FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the I2C subsystem. |
* @brief Enables the I2C subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_I2C FALSE |
#define HAL_USE_I2C FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the I2S subsystem. |
* @brief Enables the I2S subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_I2S FALSE |
#define HAL_USE_I2S FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the ICU subsystem. |
* @brief Enables the ICU subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_ICU FALSE |
#define HAL_USE_ICU FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the MAC subsystem. |
* @brief Enables the MAC subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_MAC FALSE |
#define HAL_USE_MAC FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the MMC_SPI subsystem. |
* @brief Enables the MMC_SPI subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_MMC_SPI FALSE |
#define HAL_USE_MMC_SPI FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the PWM subsystem. |
* @brief Enables the PWM subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_PWM FALSE |
#define HAL_USE_PWM FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the RTC subsystem. |
* @brief Enables the RTC subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_RTC FALSE |
#define HAL_USE_RTC FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the SDC subsystem. |
* @brief Enables the SDC subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_SDC FALSE |
#define HAL_USE_SDC FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the SERIAL subsystem. |
* @brief Enables the SERIAL subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_SERIAL FALSE |
#define HAL_USE_SERIAL FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the SERIAL over USB subsystem. |
* @brief Enables the SERIAL over USB subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_SERIAL_USB FALSE |
#define HAL_USE_SERIAL_USB FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the SPI subsystem. |
* @brief Enables the SPI subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_SPI FALSE |
#define HAL_USE_SPI FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the UART subsystem. |
* @brief Enables the UART subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_UART FALSE |
#define HAL_USE_UART FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the USB subsystem. |
* @brief Enables the USB subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_USB TRUE |
#define HAL_USE_USB TRUE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the WDG subsystem. |
* @brief Enables the WDG subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_WDG FALSE |
#define HAL_USE_WDG FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/*===========================================================================*/ |
/*===========================================================================*/ |
||||||
/* USB driver related settings. */ |
/* USB driver related settings. */ |
||||||
/*===========================================================================*/ |
/*===========================================================================*/ |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables synchronous APIs. |
* @brief Enables synchronous APIs. |
||||||
* @note Disabling this option saves both code and data space. |
* @note Disabling this option saves both code and data space. |
||||||
*/ |
*/ |
||||||
#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) |
#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) |
||||||
#define USB_USE_WAIT TRUE |
#define USB_USE_WAIT TRUE |
||||||
#endif |
#endif |
||||||
|
|
||||||
#endif /* _HALCONF_H_ */ |
#endif /* _HALCONF_H_ */ |
||||||
|
|
||||||
/** @} */ |
/** @} */ |
||||||
|
@ -1,55 +1,55 @@ |
|||||||
/*
|
/*
|
||||||
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio |
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio |
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); |
Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
you may not use this file except in compliance with the License. |
you may not use this file except in compliance with the License. |
||||||
You may obtain a copy of the License at |
You may obtain a copy of the License at |
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software |
Unless required by applicable law or agreed to in writing, software |
||||||
distributed under the License is distributed on an "AS IS" BASIS, |
distributed under the License is distributed on an "AS IS" BASIS, |
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
See the License for the specific language governing permissions and |
See the License for the specific language governing permissions and |
||||||
limitations under the License. |
limitations under the License. |
||||||
*/ |
*/ |
||||||
|
|
||||||
#ifndef _MCUCONF_H_ |
#ifndef _MCUCONF_H_ |
||||||
#define _MCUCONF_H_ |
#define _MCUCONF_H_ |
||||||
|
|
||||||
#define KL2x_MCUCONF |
#define KL2x_MCUCONF |
||||||
|
|
||||||
/*
|
/*
|
||||||
* HAL driver system settings. |
* HAL driver system settings. |
||||||
*/ |
*/ |
||||||
#if 1 |
#if 1 |
||||||
/* PEE mode - 48MHz system clock driven by (16 MHz) external crystal. */ |
/* PEE mode - 48MHz system clock driven by (16 MHz) external crystal. */ |
||||||
#define KINETIS_MCG_MODE KINETIS_MCG_MODE_PEE |
#define KINETIS_MCG_MODE KINETIS_MCG_MODE_PEE |
||||||
#define KINETIS_PLLCLK_FREQUENCY 96000000UL |
#define KINETIS_PLLCLK_FREQUENCY 96000000UL |
||||||
#define KINETIS_SYSCLK_FREQUENCY 48000000UL |
#define KINETIS_SYSCLK_FREQUENCY 48000000UL |
||||||
#endif |
#endif |
||||||
|
|
||||||
#if 0 |
#if 0 |
||||||
/* crystal-less FEI mode - 48 MHz with internal 32.768 kHz crystal */ |
/* crystal-less FEI mode - 48 MHz with internal 32.768 kHz crystal */ |
||||||
#define KINETIS_MCG_MODE KINETIS_MCG_MODE_FEI |
#define KINETIS_MCG_MODE KINETIS_MCG_MODE_FEI |
||||||
#define KINETIS_MCG_FLL_DMX32 1 /* Fine-tune for 32.768 kHz */ |
#define KINETIS_MCG_FLL_DMX32 1 /* Fine-tune for 32.768 kHz */ |
||||||
#define KINETIS_MCG_FLL_DRS 1 /* 1464x FLL factor */ |
#define KINETIS_MCG_FLL_DRS 1 /* 1464x FLL factor */ |
||||||
#define KINETIS_SYSCLK_FREQUENCY 47972352UL /* 32.768 kHz * 1464 (~48 MHz) */ |
#define KINETIS_SYSCLK_FREQUENCY 47972352UL /* 32.768 kHz * 1464 (~48 MHz) */ |
||||||
#define KINETIS_CLKDIV1_OUTDIV1 1 /* do not divide system clock */ |
#define KINETIS_CLKDIV1_OUTDIV1 1 /* do not divide system clock */ |
||||||
#endif |
#endif |
||||||
|
|
||||||
/*
|
/*
|
||||||
* SERIAL driver system settings. |
* SERIAL driver system settings. |
||||||
*/ |
*/ |
||||||
#define KINETIS_SERIAL_USE_UART0 TRUE |
#define KINETIS_SERIAL_USE_UART0 TRUE |
||||||
|
|
||||||
/*
|
/*
|
||||||
* USB driver settings |
* USB driver settings |
||||||
*/ |
*/ |
||||||
#define KINETIS_USB_USE_USB0 TRUE |
#define KINETIS_USB_USE_USB0 TRUE |
||||||
/* Need to redefine this, since the default is for K20x */ |
/* Need to redefine this, since the default is for K20x */ |
||||||
/* This is for Teensy LC; you should comment it out (or change to 5)
|
/* This is for Teensy LC; you should comment it out (or change to 5)
|
||||||
* for Teensy 3.x */ |
* for Teensy 3.x */ |
||||||
#define KINETIS_USB_USB0_IRQ_PRIORITY 2 |
#define KINETIS_USB_USB0_IRQ_PRIORITY 2 |
||||||
|
|
||||||
#endif /* _MCUCONF_H_ */ |
#endif /* _MCUCONF_H_ */ |
||||||
|
@ -0,0 +1,49 @@ |
|||||||
|
# project specific files
|
||||||
|
SRC = matrix.c \
|
||||||
|
led.c
|
||||||
|
|
||||||
|
## chip/board settings
|
||||||
|
# - the next two should match the directories in
|
||||||
|
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||||
|
# - For Teensies, FAMILY = KINETIS and SERIES is either
|
||||||
|
# KL2x (LC) or K20x (3.0,3.1,3.2).
|
||||||
|
MCU_FAMILY = KINETIS
|
||||||
|
MCU_SERIES = KL2x
|
||||||
|
|
||||||
|
# Linker script to use
|
||||||
|
# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
|
||||||
|
# or <this_dir>/ld/
|
||||||
|
# - NOTE: a custom ld script is needed for EEPROM on Teensy LC
|
||||||
|
# - LDSCRIPT =
|
||||||
|
# - MKL26Z64 for Teensy LC
|
||||||
|
# - MK20DX128 for Teensy 3.0
|
||||||
|
# - MK20DX256 for Teensy 3.1 and 3.2
|
||||||
|
MCU_LDSCRIPT = MKL26Z64
|
||||||
|
|
||||||
|
# Startup code to use
|
||||||
|
# - it should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
|
||||||
|
# - STARTUP =
|
||||||
|
# - kl2x for Teensy LC
|
||||||
|
# - k20x5 for Teensy 3.0
|
||||||
|
# - k20x7 for Teensy 3.1 and 3.2
|
||||||
|
MCU_STARTUP = kl2x
|
||||||
|
|
||||||
|
# Board: it should exist either in <chibios>/os/hal/boards/
|
||||||
|
# or <this_dir>/boards
|
||||||
|
# - BOARD =
|
||||||
|
# - PJRC_TEENSY_LC for Teensy LC
|
||||||
|
# - PJRC_TEENSY_3 for Teensy 3.0
|
||||||
|
# - PJRC_TEENSY_3_1 for Teensy 3.1 or 3.2
|
||||||
|
BOARD = PJRC_TEENSY_LC
|
||||||
|
|
||||||
|
# Cortex version
|
||||||
|
# Teensy LC is cortex-m0plus; Teensy 3.x are cortex-m4
|
||||||
|
MCU = cortex-m0plus
|
||||||
|
|
||||||
|
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||||
|
# I.e. 6 for Teensy LC; 7 for Teensy 3.x
|
||||||
|
ARMV = 6
|
||||||
|
|
||||||
|
ifndef QUANTUM_DIR |
||||||
|
include ../../../Makefile
|
||||||
|
endif |
@ -1,109 +1,5 @@ |
|||||||
#----------------------------------------------------------------------------
|
|
||||||
# On command line:
|
|
||||||
#
|
|
||||||
# make all = Make software.
|
|
||||||
#
|
|
||||||
# make clean = Clean out built project files.
|
|
||||||
#
|
|
||||||
# make coff = Convert ELF to AVR COFF.
|
|
||||||
#
|
|
||||||
# make extcoff = Convert ELF to AVR Extended COFF.
|
|
||||||
#
|
|
||||||
# make program = Download the hex file to the device.
|
|
||||||
# Please customize your programmer settings(PROGRAM_CMD)
|
|
||||||
#
|
|
||||||
# make teensy = Download the hex file to the device, using teensy_loader_cli.
|
|
||||||
# (must have teensy_loader_cli installed).
|
|
||||||
#
|
|
||||||
# make dfu = Download the hex file to the device, using dfu-programmer (must
|
|
||||||
# have dfu-programmer installed).
|
|
||||||
#
|
|
||||||
# make flip = Download the hex file to the device, using Atmel FLIP (must
|
|
||||||
# have Atmel FLIP installed).
|
|
||||||
#
|
|
||||||
# make dfu-ee = Download the eeprom file to the device, using dfu-programmer
|
|
||||||
# (must have dfu-programmer installed).
|
|
||||||
#
|
|
||||||
# make flip-ee = Download the eeprom file to the device, using Atmel FLIP
|
|
||||||
# (must have Atmel FLIP installed).
|
|
||||||
#
|
|
||||||
# make debug = Start either simulavr or avarice as specified for debugging,
|
|
||||||
# with avr-gdb or avr-insight as the front end for debugging.
|
|
||||||
#
|
|
||||||
# make filename.s = Just compile filename.c into the assembler code only.
|
|
||||||
#
|
|
||||||
# make filename.i = Create a preprocessed source file for use in submitting
|
|
||||||
# bug reports to the GCC project.
|
|
||||||
#
|
|
||||||
# To rebuild project do "make clean" then "make all".
|
|
||||||
#----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
SUBPROJECT_DEFAULT = rev2
|
SUBPROJECT_DEFAULT = rev2
|
||||||
|
|
||||||
# MCU name
|
ifndef MAKEFILE_INCLUDED |
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
# Boot Section Size in *bytes*
|
|
||||||
# Teensy halfKay 512
|
|
||||||
# Teensy++ halfKay 1024
|
|
||||||
# Atmel DFU loader 4096
|
|
||||||
# LUFA bootloader 4096
|
|
||||||
# USBaspLoader 2048
|
|
||||||
OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
|
||||||
|
|
||||||
|
|
||||||
# Build Options
|
|
||||||
# change to no to disable the options.
|
|
||||||
#
|
|
||||||
BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
|
|
||||||
MOUSEKEY_ENABLE ?= no # Mouse keys(+4700)
|
|
||||||
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
|
||||||
CONSOLE_ENABLE ?= yes # Console for debug(+400)
|
|
||||||
COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
|
||||||
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
|
||||||
AUDIO_ENABLE ?= no
|
|
||||||
RGBLIGHT_ENABLE ?= no # Enable keyboard underlight functionality
|
|
||||||
MIDI_ENABLE ?= no # MIDI controls
|
|
||||||
UNICODE_ENABLE ?= no # Unicode
|
|
||||||
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
|
|
||||||
|
|
||||||
ifndef QUANTUM_DIR |
|
||||||
include ../../Makefile
|
include ../../Makefile
|
||||||
endif |
endif |
@ -1,5 +1,3 @@ |
|||||||
BACKLIGHT_ENABLE = no
|
ifndef MAKEFILE_INCLUDED |
||||||
|
|
||||||
ifndef QUANTUM_DIR |
|
||||||
include ../../../Makefile
|
include ../../../Makefile
|
||||||
endif |
endif |
@ -0,0 +1,5 @@ |
|||||||
|
BACKLIGHT_ENABLE = no
|
||||||
|
|
||||||
|
ifndef QUANTUM_DIR |
||||||
|
include ../../../Makefile
|
||||||
|
endif |
@ -1,5 +1,3 @@ |
|||||||
BACKLIGHT_ENABLE = yes
|
ifndef MAKEFILE_INCLUDED |
||||||
|
|
||||||
ifndef QUANTUM_DIR |
|
||||||
include ../../../Makefile
|
include ../../../Makefile
|
||||||
endif |
endif |
@ -0,0 +1,5 @@ |
|||||||
|
BACKLIGHT_ENABLE = yes
|
||||||
|
|
||||||
|
ifndef QUANTUM_DIR |
||||||
|
include ../../../Makefile
|
||||||
|
endif |
@ -0,0 +1,103 @@ |
|||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# On command line:
|
||||||
|
#
|
||||||
|
# make all = Make software.
|
||||||
|
#
|
||||||
|
# make clean = Clean out built project files.
|
||||||
|
#
|
||||||
|
# make coff = Convert ELF to AVR COFF.
|
||||||
|
#
|
||||||
|
# make extcoff = Convert ELF to AVR Extended COFF.
|
||||||
|
#
|
||||||
|
# make program = Download the hex file to the device.
|
||||||
|
# Please customize your programmer settings(PROGRAM_CMD)
|
||||||
|
#
|
||||||
|
# make teensy = Download the hex file to the device, using teensy_loader_cli.
|
||||||
|
# (must have teensy_loader_cli installed).
|
||||||
|
#
|
||||||
|
# make dfu = Download the hex file to the device, using dfu-programmer (must
|
||||||
|
# have dfu-programmer installed).
|
||||||
|
#
|
||||||
|
# make flip = Download the hex file to the device, using Atmel FLIP (must
|
||||||
|
# have Atmel FLIP installed).
|
||||||
|
#
|
||||||
|
# make dfu-ee = Download the eeprom file to the device, using dfu-programmer
|
||||||
|
# (must have dfu-programmer installed).
|
||||||
|
#
|
||||||
|
# make flip-ee = Download the eeprom file to the device, using Atmel FLIP
|
||||||
|
# (must have Atmel FLIP installed).
|
||||||
|
#
|
||||||
|
# make debug = Start either simulavr or avarice as specified for debugging,
|
||||||
|
# with avr-gdb or avr-insight as the front end for debugging.
|
||||||
|
#
|
||||||
|
# make filename.s = Just compile filename.c into the assembler code only.
|
||||||
|
#
|
||||||
|
# make filename.i = Create a preprocessed source file for use in submitting
|
||||||
|
# bug reports to the GCC project.
|
||||||
|
#
|
||||||
|
# To rebuild project do "make clean" then "make all".
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# MCU name
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
# Boot Section Size in *bytes*
|
||||||
|
# Teensy halfKay 512
|
||||||
|
# Teensy++ halfKay 1024
|
||||||
|
# Atmel DFU loader 4096
|
||||||
|
# LUFA bootloader 4096
|
||||||
|
# USBaspLoader 2048
|
||||||
|
OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
||||||
|
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# comment out to disable the options.
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
|
||||||
|
MOUSEKEY_ENABLE ?= no # Mouse keys(+4700)
|
||||||
|
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
||||||
|
CONSOLE_ENABLE ?= yes # Console for debug(+400)
|
||||||
|
COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
||||||
|
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
AUDIO_ENABLE ?= no
|
||||||
|
RGBLIGHT_ENABLE ?= no # Enable keyboard underlight functionality
|
||||||
|
MIDI_ENABLE ?= no # MIDI controls
|
||||||
|
UNICODE_ENABLE ?= no # Unicode
|
||||||
|
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
|
@ -1,76 +1,3 @@ |
|||||||
|
ifndef MAKEFILE_INCLUDED |
||||||
|
|
||||||
# MCU name
|
|
||||||
#MCU = at90usb1287
|
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
# Boot Section Size in *bytes*
|
|
||||||
# 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 ?= yes # Mouse keys(+4700)
|
|
||||||
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
|
||||||
CONSOLE_ENABLE ?= yes # Console for debug(+400)
|
|
||||||
COMMAND_ENABLE ?= yes # 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
|
|
||||||
RGBLIGHT_ENABLE ?= yes # Enable keyboard underlight functionality (+4870)
|
|
||||||
BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality by default
|
|
||||||
MIDI_ENABLE ?= no # MIDI controls
|
|
||||||
UNICODE_ENABLE ?= no # Unicode
|
|
||||||
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
|
|
||||||
AUDIO_ENABLE ?= yes # Audio output on port C6
|
|
||||||
|
|
||||||
ifndef QUANTUM_DIR |
|
||||||
include ../../Makefile
|
include ../../Makefile
|
||||||
endif |
endif |
||||||
|
|
||||||
|
|
@ -0,0 +1,70 @@ |
|||||||
|
|
||||||
|
|
||||||
|
# MCU name
|
||||||
|
#MCU = at90usb1287
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
# Boot Section Size in *bytes*
|
||||||
|
# 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 ?= yes # Mouse keys(+4700)
|
||||||
|
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
||||||
|
CONSOLE_ENABLE ?= yes # Console for debug(+400)
|
||||||
|
COMMAND_ENABLE ?= yes # 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
|
||||||
|
RGBLIGHT_ENABLE ?= yes # Enable keyboard underlight functionality (+4870)
|
||||||
|
BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality by default
|
||||||
|
MIDI_ENABLE ?= no # MIDI controls
|
||||||
|
UNICODE_ENABLE ?= no # Unicode
|
||||||
|
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
|
AUDIO_ENABLE ?= yes # Audio output on port C6
|
@ -1,70 +1,3 @@ |
|||||||
|
ifndef MAKEFILE_INCLUDED |
||||||
# MCU name
|
|
||||||
#MCU = at90usb1287
|
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
# Boot Section Size in *bytes*
|
|
||||||
# Teensy halfKay 512
|
|
||||||
# Teensy++ halfKay 1024
|
|
||||||
# Atmel DFU loader 4096
|
|
||||||
# LUFA bootloader 4096
|
|
||||||
# USBaspLoader 2048
|
|
||||||
OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
|
||||||
|
|
||||||
|
|
||||||
# Build Options
|
|
||||||
# comment out to disable the options.
|
|
||||||
#
|
|
||||||
BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
|
|
||||||
# MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
|
|
||||||
# EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
|
||||||
# CONSOLE_ENABLE ?= yes # Console for debug(+400)
|
|
||||||
# COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
|
||||||
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
|
||||||
BACKLIGHT_ENABLE ?= yes # Enable numpad's backlight functionality
|
|
||||||
RGBLIGHT_ENABLE ?= yes
|
|
||||||
# MIDI_ENABLE ?= YES # MIDI controls
|
|
||||||
# UNICODE_ENABLE ?= YES # Unicode
|
|
||||||
# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
|
|
||||||
|
|
||||||
|
|
||||||
ifndef QUANTUM_DIR |
|
||||||
include ../../Makefile
|
include ../../Makefile
|
||||||
endif |
endif |
@ -0,0 +1,65 @@ |
|||||||
|
|
||||||
|
# MCU name
|
||||||
|
#MCU = at90usb1287
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
# Boot Section Size in *bytes*
|
||||||
|
# Teensy halfKay 512
|
||||||
|
# Teensy++ halfKay 1024
|
||||||
|
# Atmel DFU loader 4096
|
||||||
|
# LUFA bootloader 4096
|
||||||
|
# USBaspLoader 2048
|
||||||
|
OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
||||||
|
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# comment out to disable the options.
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
|
||||||
|
# MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
|
||||||
|
# EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
||||||
|
# CONSOLE_ENABLE ?= yes # Console for debug(+400)
|
||||||
|
# COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
||||||
|
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
BACKLIGHT_ENABLE ?= yes # Enable numpad's backlight functionality
|
||||||
|
RGBLIGHT_ENABLE ?= yes
|
||||||
|
# MIDI_ENABLE ?= YES # MIDI controls
|
||||||
|
# UNICODE_ENABLE ?= YES # Unicode
|
||||||
|
# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
|
@ -1,34 +1,5 @@ |
|||||||
#----------------------------------------------------------------------------
|
|
||||||
# On command line:
|
|
||||||
#
|
|
||||||
# make = Make software.
|
|
||||||
#
|
|
||||||
# make clean = Clean out built project files.
|
|
||||||
#
|
|
||||||
# That's pretty much all you need. To compile, always go make clean,
|
|
||||||
# followed by make.
|
|
||||||
#
|
|
||||||
# For advanced users only:
|
|
||||||
# make teensy = Download the hex file to the device, using teensy_loader_cli.
|
|
||||||
# (must have teensy_loader_cli installed).
|
|
||||||
#
|
|
||||||
#----------------------------------------------------------------------------
|
|
||||||
SUBPROJECT_DEFAULT = ez
|
SUBPROJECT_DEFAULT = ez
|
||||||
|
|
||||||
# Build Options
|
ifndef MAKEFILE_INCLUDED |
||||||
# comment out to disable the options.
|
|
||||||
#
|
|
||||||
BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
|
|
||||||
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
|
|
||||||
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
|
||||||
CONSOLE_ENABLE ?= no # Console for debug(+400)
|
|
||||||
COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
|
||||||
CUSTOM_MATRIX ?= yes # Custom matrix file for the ErgoDox EZ
|
|
||||||
SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
|
|
||||||
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
|
||||||
MIDI_ENABLE ?= no # MIDI controls
|
|
||||||
UNICODE_ENABLE ?= yes # Unicode
|
|
||||||
|
|
||||||
ifndef QUANTUM_DIR |
|
||||||
include ../../Makefile
|
include ../../Makefile
|
||||||
endif |
endif |
@ -1,76 +1,3 @@ |
|||||||
#----------------------------------------------------------------------------
|
ifndef MAKEFILE_INCLUDED |
||||||
# On command line:
|
|
||||||
#
|
|
||||||
# make = Make software.
|
|
||||||
#
|
|
||||||
# make clean = Clean out built project files.
|
|
||||||
#
|
|
||||||
# That's pretty much all you need. To compile, always go make clean,
|
|
||||||
# followed by make.
|
|
||||||
#
|
|
||||||
# For advanced users only:
|
|
||||||
# make teensy = Download the hex file to the device, using teensy_loader_cli.
|
|
||||||
# (must have teensy_loader_cli installed).
|
|
||||||
#
|
|
||||||
#----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
# # project specific files
|
|
||||||
SRC = twimaster.c \
|
|
||||||
matrix.c
|
|
||||||
|
|
||||||
# MCU name
|
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
# Boot Section Size in *bytes*
|
|
||||||
# Teensy halfKay 512
|
|
||||||
# Teensy++ halfKay 1024
|
|
||||||
# Atmel DFU loader 4096
|
|
||||||
# LUFA bootloader 4096
|
|
||||||
# USBaspLoader 2048
|
|
||||||
OPT_DEFS += -DBOOTLOADER_SIZE=512
|
|
||||||
|
|
||||||
|
|
||||||
# Build Options
|
|
||||||
# comment out to disable the options.
|
|
||||||
#
|
|
||||||
|
|
||||||
ifndef QUANTUM_DIR |
|
||||||
include ../../../Makefile
|
include ../../../Makefile
|
||||||
endif |
endif |
@ -0,0 +1,76 @@ |
|||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# On command line:
|
||||||
|
#
|
||||||
|
# make = Make software.
|
||||||
|
#
|
||||||
|
# make clean = Clean out built project files.
|
||||||
|
#
|
||||||
|
# That's pretty much all you need. To compile, always go make clean,
|
||||||
|
# followed by make.
|
||||||
|
#
|
||||||
|
# For advanced users only:
|
||||||
|
# make teensy = Download the hex file to the device, using teensy_loader_cli.
|
||||||
|
# (must have teensy_loader_cli installed).
|
||||||
|
#
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# # project specific files
|
||||||
|
SRC = twimaster.c \
|
||||||
|
matrix.c
|
||||||
|
|
||||||
|
# MCU name
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
# Boot Section Size in *bytes*
|
||||||
|
# Teensy halfKay 512
|
||||||
|
# Teensy++ halfKay 1024
|
||||||
|
# Atmel DFU loader 4096
|
||||||
|
# LUFA bootloader 4096
|
||||||
|
# USBaspLoader 2048
|
||||||
|
OPT_DEFS += -DBOOTLOADER_SIZE=512
|
||||||
|
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# comment out to disable the options.
|
||||||
|
#
|
||||||
|
|
||||||
|
ifndef QUANTUM_DIR |
||||||
|
include ../../../Makefile
|
||||||
|
endif |
@ -1,77 +1,3 @@ |
|||||||
# project specific files
|
ifndef MAKEFILE_INCLUDED |
||||||
SRC = matrix.c \
|
|
||||||
led.c
|
|
||||||
|
|
||||||
## chip/board settings
|
|
||||||
# - the next two should match the directories in
|
|
||||||
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
|
||||||
# - For Teensies, FAMILY = KINETIS and SERIES is either
|
|
||||||
# KL2x (LC) or K20x (3.0,3.1,3.2).
|
|
||||||
# - For Infinity KB, SERIES = K20x
|
|
||||||
MCU_FAMILY = KINETIS
|
|
||||||
MCU_SERIES = K20x
|
|
||||||
|
|
||||||
# Linker script to use
|
|
||||||
# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
|
|
||||||
# or <this_dir>/ld/
|
|
||||||
# - NOTE: a custom ld script is needed for EEPROM on Teensy LC
|
|
||||||
# - LDSCRIPT =
|
|
||||||
# - MKL26Z64 for Teensy LC
|
|
||||||
# - MK20DX128 for Teensy 3.0
|
|
||||||
# - MK20DX256 for Teensy 3.1 and 3.2
|
|
||||||
# - MK20DX128BLDR4 for Infinity 60% with Kiibohd bootloader
|
|
||||||
# - MK20DX256BLDR8 for Infinity ErgoDox with Kiibohd bootloader
|
|
||||||
MCU_LDSCRIPT = MK20DX256BLDR8
|
|
||||||
|
|
||||||
# Startup code to use
|
|
||||||
# - it should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
|
|
||||||
# - STARTUP =
|
|
||||||
# - kl2x for Teensy LC
|
|
||||||
# - k20x5 for Teensy 3.0 and Infinity 60%
|
|
||||||
# - k20x7 for Teensy 3.1, 3.2 and Infinity ErgoDox
|
|
||||||
MCU_STARTUP = k20x7
|
|
||||||
|
|
||||||
# Board: it should exist either in <chibios>/os/hal/boards/
|
|
||||||
# or <this_dir>/boards
|
|
||||||
# - BOARD =
|
|
||||||
# - PJRC_TEENSY_LC for Teensy LC
|
|
||||||
# - PJRC_TEENSY_3 for Teensy 3.0
|
|
||||||
# - PJRC_TEENSY_3_1 for Teensy 3.1 or 3.2
|
|
||||||
# - MCHCK_K20 for Infinity KB
|
|
||||||
#BOARD = MCHCK_K20
|
|
||||||
BOARD = PJRC_TEENSY_3_1
|
|
||||||
|
|
||||||
# Cortex version
|
|
||||||
# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4
|
|
||||||
MCU = cortex-m4
|
|
||||||
|
|
||||||
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
|
||||||
# I.e. 6 for Teensy LC; 7 for Teensy 3.x
|
|
||||||
ARMV = 7
|
|
||||||
|
|
||||||
# Vector table for application
|
|
||||||
# 0x00000000-0x00001000 area is occupied by bootlaoder.*/
|
|
||||||
# The CORTEX_VTOR... is needed only for MCHCK/Infinity KB
|
|
||||||
OPT_DEFS += -DCORTEX_VTOR_INIT=0x00002000
|
|
||||||
|
|
||||||
# Build Options
|
|
||||||
# comment out to disable the options.
|
|
||||||
#
|
|
||||||
CUSTOM_MATRIX ?= yes # Custom matrix file
|
|
||||||
SERIAL_LINK_ENABLE = yes
|
|
||||||
VISUALIZER_ENABLE ?= no #temporarily disabled to make everything compile
|
|
||||||
LCD_ENABLE ?= yes
|
|
||||||
LED_ENABLE ?= yes
|
|
||||||
LCD_BACKLIGHT_ENABLE ?= yes
|
|
||||||
|
|
||||||
ifndef QUANTUM_DIR |
|
||||||
include ../../../Makefile
|
include ../../../Makefile
|
||||||
endif |
endif |
||||||
|
|
||||||
ifdef LCD_ENABLE |
|
||||||
include $(SUBPROJECT_PATH)/drivers/gdisp/st7565ergodox/driver.mk |
|
||||||
endif |
|
||||||
|
|
||||||
ifdef LED_ENABLE |
|
||||||
include $(SUBPROJECT_PATH)/drivers/gdisp/IS31FL3731C/driver.mk |
|
||||||
endif |
|
@ -0,0 +1,77 @@ |
|||||||
|
# project specific files
|
||||||
|
SRC = matrix.c \
|
||||||
|
led.c
|
||||||
|
|
||||||
|
## chip/board settings
|
||||||
|
# - the next two should match the directories in
|
||||||
|
# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
|
||||||
|
# - For Teensies, FAMILY = KINETIS and SERIES is either
|
||||||
|
# KL2x (LC) or K20x (3.0,3.1,3.2).
|
||||||
|
# - For Infinity KB, SERIES = K20x
|
||||||
|
MCU_FAMILY = KINETIS
|
||||||
|
MCU_SERIES = K20x
|
||||||
|
|
||||||
|
# Linker script to use
|
||||||
|
# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
|
||||||
|
# or <this_dir>/ld/
|
||||||
|
# - NOTE: a custom ld script is needed for EEPROM on Teensy LC
|
||||||
|
# - LDSCRIPT =
|
||||||
|
# - MKL26Z64 for Teensy LC
|
||||||
|
# - MK20DX128 for Teensy 3.0
|
||||||
|
# - MK20DX256 for Teensy 3.1 and 3.2
|
||||||
|
# - MK20DX128BLDR4 for Infinity 60% with Kiibohd bootloader
|
||||||
|
# - MK20DX256BLDR8 for Infinity ErgoDox with Kiibohd bootloader
|
||||||
|
MCU_LDSCRIPT = MK20DX256BLDR8
|
||||||
|
|
||||||
|
# Startup code to use
|
||||||
|
# - it should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
|
||||||
|
# - STARTUP =
|
||||||
|
# - kl2x for Teensy LC
|
||||||
|
# - k20x5 for Teensy 3.0 and Infinity 60%
|
||||||
|
# - k20x7 for Teensy 3.1, 3.2 and Infinity ErgoDox
|
||||||
|
MCU_STARTUP = k20x7
|
||||||
|
|
||||||
|
# Board: it should exist either in <chibios>/os/hal/boards/
|
||||||
|
# or <this_dir>/boards
|
||||||
|
# - BOARD =
|
||||||
|
# - PJRC_TEENSY_LC for Teensy LC
|
||||||
|
# - PJRC_TEENSY_3 for Teensy 3.0
|
||||||
|
# - PJRC_TEENSY_3_1 for Teensy 3.1 or 3.2
|
||||||
|
# - MCHCK_K20 for Infinity KB
|
||||||
|
#BOARD = MCHCK_K20
|
||||||
|
BOARD = PJRC_TEENSY_3_1
|
||||||
|
|
||||||
|
# Cortex version
|
||||||
|
# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4
|
||||||
|
MCU = cortex-m4
|
||||||
|
|
||||||
|
# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
|
||||||
|
# I.e. 6 for Teensy LC; 7 for Teensy 3.x
|
||||||
|
ARMV = 7
|
||||||
|
|
||||||
|
# Vector table for application
|
||||||
|
# 0x00000000-0x00001000 area is occupied by bootlaoder.*/
|
||||||
|
# The CORTEX_VTOR... is needed only for MCHCK/Infinity KB
|
||||||
|
OPT_DEFS += -DCORTEX_VTOR_INIT=0x00002000
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# comment out to disable the options.
|
||||||
|
#
|
||||||
|
CUSTOM_MATRIX ?= yes # Custom matrix file
|
||||||
|
SERIAL_LINK_ENABLE = yes
|
||||||
|
VISUALIZER_ENABLE ?= no #temporarily disabled to make everything compile
|
||||||
|
LCD_ENABLE ?= yes
|
||||||
|
LED_ENABLE ?= yes
|
||||||
|
LCD_BACKLIGHT_ENABLE ?= yes
|
||||||
|
|
||||||
|
ifndef QUANTUM_DIR |
||||||
|
include ../../../Makefile
|
||||||
|
endif |
||||||
|
|
||||||
|
ifdef LCD_ENABLE |
||||||
|
include $(SUBPROJECT_PATH)/drivers/gdisp/st7565ergodox/driver.mk |
||||||
|
endif |
||||||
|
|
||||||
|
ifdef LED_ENABLE |
||||||
|
include $(SUBPROJECT_PATH)/drivers/gdisp/IS31FL3731C/driver.mk |
||||||
|
endif |
@ -0,0 +1,28 @@ |
|||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# On command line:
|
||||||
|
#
|
||||||
|
# make = Make software.
|
||||||
|
#
|
||||||
|
# make clean = Clean out built project files.
|
||||||
|
#
|
||||||
|
# That's pretty much all you need. To compile, always go make clean,
|
||||||
|
# followed by make.
|
||||||
|
#
|
||||||
|
# For advanced users only:
|
||||||
|
# make teensy = Download the hex file to the device, using teensy_loader_cli.
|
||||||
|
# (must have teensy_loader_cli installed).
|
||||||
|
#
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# Build Options
|
||||||
|
# comment out to disable the options.
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
|
||||||
|
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
|
||||||
|
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
||||||
|
CONSOLE_ENABLE ?= no # Console for debug(+400)
|
||||||
|
COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
||||||
|
CUSTOM_MATRIX ?= yes # Custom matrix file for the ErgoDox EZ
|
||||||
|
SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
|
||||||
|
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
MIDI_ENABLE ?= no # MIDI controls
|
||||||
|
UNICODE_ENABLE ?= yes # Unicode
|
@ -1,74 +1,3 @@ |
|||||||
|
ifndef MAKEFILE_INCLUDED |
||||||
|
include ../../Makefile
|
||||||
# MCU name
|
endif |
||||||
#MCU = at90usb1287
|
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
# Boot Section Size in *bytes*
|
|
||||||
# Teensy halfKay 512
|
|
||||||
# Teensy++ halfKay 1024
|
|
||||||
# Atmel DFU loader 4096
|
|
||||||
# LUFA bootloader 4096
|
|
||||||
# USBaspLoader 2048
|
|
||||||
OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
|
||||||
|
|
||||||
|
|
||||||
# Build Options
|
|
||||||
# comment out to disable the options.
|
|
||||||
#
|
|
||||||
BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
|
|
||||||
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
|
|
||||||
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
|
||||||
# CONSOLE_ENABLE ?= yes # Console for debug(+400)
|
|
||||||
# COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
|
||||||
KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key
|
|
||||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
|
||||||
# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
|
|
||||||
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
|
||||||
# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
|
|
||||||
# MIDI_ENABLE ?= YES # MIDI controls
|
|
||||||
# UNICODE_ENABLE ?= YES # Unicode
|
|
||||||
# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
|
|
||||||
|
|
||||||
|
|
||||||
ifndef QUANTUM_DIR |
|
||||||
include ../../Makefile
|
|
||||||
endif |
|
||||||
|
|
||||||
|
@ -1,161 +1,161 @@ |
|||||||
/*
|
/*
|
||||||
Copyright 2012 Jun Wako <wakojun@gmail.com> |
Copyright 2012 Jun Wako <wakojun@gmail.com> |
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify |
This program is free software: you can redistribute it and/or modify |
||||||
it under the terms of the GNU General Public License as published by |
it under the terms of the GNU General Public License as published by |
||||||
the Free Software Foundation, either version 2 of the License, or |
the Free Software Foundation, either version 2 of the License, or |
||||||
(at your option) any later version. |
(at your option) any later version. |
||||||
|
|
||||||
This program is distributed in the hope that it will be useful, |
This program is distributed in the hope that it will be useful, |
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
GNU General Public License for more details. |
GNU General Public License for more details. |
||||||
|
|
||||||
You should have received a copy of the GNU General Public License |
You should have received a copy of the GNU General Public License |
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/ |
*/ |
||||||
|
|
||||||
#ifndef CONFIG_H |
#ifndef CONFIG_H |
||||||
#define CONFIG_H |
#define CONFIG_H |
||||||
|
|
||||||
#include "config_common.h" |
#include "config_common.h" |
||||||
|
|
||||||
/* USB Device descriptor parameter */ |
/* USB Device descriptor parameter */ |
||||||
#define VENDOR_ID 0xFEED |
#define VENDOR_ID 0xFEED |
||||||
#define PRODUCT_ID 0x6060 |
#define PRODUCT_ID 0x6060 |
||||||
#define DEVICE_VER 0x0001 |
#define DEVICE_VER 0x0001 |
||||||
#define MANUFACTURER geekhack |
#define MANUFACTURER geekhack |
||||||
#define PRODUCT GH60 |
#define PRODUCT GH60 |
||||||
#define DESCRIPTION t.m.k. keyboard firmware for GH60 |
#define DESCRIPTION t.m.k. keyboard firmware for GH60 |
||||||
|
|
||||||
/* key matrix size */ |
/* key matrix size */ |
||||||
#define MATRIX_ROWS 5 |
#define MATRIX_ROWS 5 |
||||||
#define MATRIX_COLS 14 |
#define MATRIX_COLS 14 |
||||||
|
|
||||||
/*
|
/*
|
||||||
* Keyboard Matrix Assignments |
* Keyboard Matrix Assignments |
||||||
* |
* |
||||||
* Change this to how you wired your keyboard |
* Change this to how you wired your keyboard |
||||||
* COLS: AVR pins used for columns, left to right |
* COLS: AVR pins used for columns, left to right |
||||||
* ROWS: AVR pins used for rows, top to bottom |
* ROWS: AVR pins used for rows, top to bottom |
||||||
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) |
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) |
||||||
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) |
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) |
||||||
* |
* |
||||||
*/ |
*/ |
||||||
#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 } |
#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 } |
||||||
// Rev A
|
// Rev A
|
||||||
// #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B0, B5, B4, D7, D6, B3 }
|
// #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B0, B5, B4, D7, D6, B3 }
|
||||||
// Rev B/C
|
// Rev B/C
|
||||||
#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3 } |
#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3 } |
||||||
#define UNUSED_PINS |
#define UNUSED_PINS |
||||||
|
|
||||||
/* COL2ROW or ROW2COL */ |
/* COL2ROW or ROW2COL */ |
||||||
#define DIODE_DIRECTION COL2ROW |
#define DIODE_DIRECTION COL2ROW |
||||||
|
|
||||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ |
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ |
||||||
#define DEBOUNCING_DELAY 5 |
#define DEBOUNCING_DELAY 5 |
||||||
|
|
||||||
/* define if matrix has ghost (lacks anti-ghosting diodes) */ |
/* define if matrix has ghost (lacks anti-ghosting diodes) */ |
||||||
//#define MATRIX_HAS_GHOST
|
//#define MATRIX_HAS_GHOST
|
||||||
|
|
||||||
/* number of backlight levels */ |
/* number of backlight levels */ |
||||||
#define BACKLIGHT_LEVELS 3 |
#define BACKLIGHT_LEVELS 3 |
||||||
|
|
||||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ |
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ |
||||||
#define LOCKING_SUPPORT_ENABLE |
#define LOCKING_SUPPORT_ENABLE |
||||||
/* Locking resynchronize hack */ |
/* Locking resynchronize hack */ |
||||||
#define LOCKING_RESYNC_ENABLE |
#define LOCKING_RESYNC_ENABLE |
||||||
|
|
||||||
/*
|
/*
|
||||||
* Force NKRO |
* Force NKRO |
||||||
* |
* |
||||||
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved |
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved |
||||||
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the |
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the |
||||||
* makefile for this to work.) |
* makefile for this to work.) |
||||||
* |
* |
||||||
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) |
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) |
||||||
* until the next keyboard reset. |
* until the next keyboard reset. |
||||||
* |
* |
||||||
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is |
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is |
||||||
* fully operational during normal computer usage. |
* fully operational during normal computer usage. |
||||||
* |
* |
||||||
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) |
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) |
||||||
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by |
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by |
||||||
* bootmagic, NKRO mode will always be enabled until it is toggled again during a |
* bootmagic, NKRO mode will always be enabled until it is toggled again during a |
||||||
* power-up. |
* power-up. |
||||||
* |
* |
||||||
*/ |
*/ |
||||||
//#define FORCE_NKRO
|
//#define FORCE_NKRO
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Magic Key Options |
* Magic Key Options |
||||||
* |
* |
||||||
* Magic keys are hotkey commands that allow control over firmware functions of |
* Magic keys are hotkey commands that allow control over firmware functions of |
||||||
* the keyboard. They are best used in combination with the HID Listen program, |
* the keyboard. They are best used in combination with the HID Listen program, |
||||||
* found here: https://www.pjrc.com/teensy/hid_listen.html
|
* found here: https://www.pjrc.com/teensy/hid_listen.html
|
||||||
* |
* |
||||||
* The options below allow the magic key functionality to be changed. This is |
* The options below allow the magic key functionality to be changed. This is |
||||||
* useful if your keyboard/keypad is missing keys and you want magic key support. |
* useful if your keyboard/keypad is missing keys and you want magic key support. |
||||||
* |
* |
||||||
*/ |
*/ |
||||||
|
|
||||||
/* key combination for magic key command */ |
/* key combination for magic key command */ |
||||||
#define IS_COMMAND() ( \ |
#define IS_COMMAND() ( \ |
||||||
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
||||||
) |
) |
||||||
|
|
||||||
/* control how magic key switches layers */ |
/* control how magic key switches layers */ |
||||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
|
||||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
|
||||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
|
||||||
|
|
||||||
/* override magic key keymap */ |
/* override magic key keymap */ |
||||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
|
||||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
|
||||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
|
||||||
//#define MAGIC_KEY_HELP1 H
|
//#define MAGIC_KEY_HELP1 H
|
||||||
//#define MAGIC_KEY_HELP2 SLASH
|
//#define MAGIC_KEY_HELP2 SLASH
|
||||||
//#define MAGIC_KEY_DEBUG D
|
//#define MAGIC_KEY_DEBUG D
|
||||||
//#define MAGIC_KEY_DEBUG_MATRIX X
|
//#define MAGIC_KEY_DEBUG_MATRIX X
|
||||||
//#define MAGIC_KEY_DEBUG_KBD K
|
//#define MAGIC_KEY_DEBUG_KBD K
|
||||||
//#define MAGIC_KEY_DEBUG_MOUSE M
|
//#define MAGIC_KEY_DEBUG_MOUSE M
|
||||||
//#define MAGIC_KEY_VERSION V
|
//#define MAGIC_KEY_VERSION V
|
||||||
//#define MAGIC_KEY_STATUS S
|
//#define MAGIC_KEY_STATUS S
|
||||||
//#define MAGIC_KEY_CONSOLE C
|
//#define MAGIC_KEY_CONSOLE C
|
||||||
//#define MAGIC_KEY_LAYER0_ALT1 ESC
|
//#define MAGIC_KEY_LAYER0_ALT1 ESC
|
||||||
//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
|
//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
|
||||||
//#define MAGIC_KEY_LAYER0 0
|
//#define MAGIC_KEY_LAYER0 0
|
||||||
//#define MAGIC_KEY_LAYER1 1
|
//#define MAGIC_KEY_LAYER1 1
|
||||||
//#define MAGIC_KEY_LAYER2 2
|
//#define MAGIC_KEY_LAYER2 2
|
||||||
//#define MAGIC_KEY_LAYER3 3
|
//#define MAGIC_KEY_LAYER3 3
|
||||||
//#define MAGIC_KEY_LAYER4 4
|
//#define MAGIC_KEY_LAYER4 4
|
||||||
//#define MAGIC_KEY_LAYER5 5
|
//#define MAGIC_KEY_LAYER5 5
|
||||||
//#define MAGIC_KEY_LAYER6 6
|
//#define MAGIC_KEY_LAYER6 6
|
||||||
//#define MAGIC_KEY_LAYER7 7
|
//#define MAGIC_KEY_LAYER7 7
|
||||||
//#define MAGIC_KEY_LAYER8 8
|
//#define MAGIC_KEY_LAYER8 8
|
||||||
//#define MAGIC_KEY_LAYER9 9
|
//#define MAGIC_KEY_LAYER9 9
|
||||||
//#define MAGIC_KEY_BOOTLOADER PAUSE
|
//#define MAGIC_KEY_BOOTLOADER PAUSE
|
||||||
//#define MAGIC_KEY_LOCK CAPS
|
//#define MAGIC_KEY_LOCK CAPS
|
||||||
//#define MAGIC_KEY_EEPROM E
|
//#define MAGIC_KEY_EEPROM E
|
||||||
//#define MAGIC_KEY_NKRO N
|
//#define MAGIC_KEY_NKRO N
|
||||||
//#define MAGIC_KEY_SLEEP_LED Z
|
//#define MAGIC_KEY_SLEEP_LED Z
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Feature disable options |
* Feature disable options |
||||||
* These options are also useful to firmware size reduction. |
* These options are also useful to firmware size reduction. |
||||||
*/ |
*/ |
||||||
|
|
||||||
/* disable debug print */ |
/* disable debug print */ |
||||||
//#define NO_DEBUG
|
//#define NO_DEBUG
|
||||||
|
|
||||||
/* disable print */ |
/* disable print */ |
||||||
//#define NO_PRINT
|
//#define NO_PRINT
|
||||||
|
|
||||||
/* disable action features */ |
/* disable action features */ |
||||||
//#define NO_ACTION_LAYER
|
//#define NO_ACTION_LAYER
|
||||||
//#define NO_ACTION_TAPPING
|
//#define NO_ACTION_TAPPING
|
||||||
//#define NO_ACTION_ONESHOT
|
//#define NO_ACTION_ONESHOT
|
||||||
//#define NO_ACTION_MACRO
|
//#define NO_ACTION_MACRO
|
||||||
//#define NO_ACTION_FUNCTION
|
//#define NO_ACTION_FUNCTION
|
||||||
|
|
||||||
#endif |
#endif |
||||||
|
@ -1,25 +1,25 @@ |
|||||||
#include "gh60.h" |
#include "gh60.h" |
||||||
|
|
||||||
void led_set_kb(uint8_t usb_led) { |
void led_set_kb(uint8_t usb_led) { |
||||||
// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
|
// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
|
||||||
|
|
||||||
if (usb_led & (1<<USB_LED_CAPS_LOCK)) { |
if (usb_led & (1<<USB_LED_CAPS_LOCK)) { |
||||||
gh60_caps_led_on(); |
gh60_caps_led_on(); |
||||||
} else { |
} else { |
||||||
gh60_caps_led_off();
|
gh60_caps_led_off();
|
||||||
} |
} |
||||||
|
|
||||||
// if (usb_led & (1<<USB_LED_NUM_LOCK)) {
|
// if (usb_led & (1<<USB_LED_NUM_LOCK)) {
|
||||||
// gh60_esc_led_on();
|
// gh60_esc_led_on();
|
||||||
// } else {
|
// } else {
|
||||||
// gh60_esc_led_off();
|
// gh60_esc_led_off();
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// if (usb_led & (1<<USB_LED_SCROLL_LOCK)) {
|
// if (usb_led & (1<<USB_LED_SCROLL_LOCK)) {
|
||||||
// gh60_fn_led_on();
|
// gh60_fn_led_on();
|
||||||
// } else {
|
// } else {
|
||||||
// gh60_fn_led_off();
|
// gh60_fn_led_off();
|
||||||
// }
|
// }
|
||||||
|
|
||||||
led_set_user(usb_led);
|
led_set_user(usb_led);
|
||||||
} |
} |
||||||
|
@ -1,74 +1,74 @@ |
|||||||
#ifndef GH60_H |
#ifndef GH60_H |
||||||
#define GH60_H |
#define GH60_H |
||||||
|
|
||||||
#include "quantum.h" |
#include "quantum.h" |
||||||
#include "led.h" |
#include "led.h" |
||||||
|
|
||||||
/* GH60 LEDs
|
/* GH60 LEDs
|
||||||
* GPIO pads |
* GPIO pads |
||||||
* 0 F7 WASD LEDs |
* 0 F7 WASD LEDs |
||||||
* 1 F6 ESC LED |
* 1 F6 ESC LED |
||||||
* 2 F5 FN LED |
* 2 F5 FN LED |
||||||
* 3 F4 POKER Arrow LEDs |
* 3 F4 POKER Arrow LEDs |
||||||
* B2 Capslock LED |
* B2 Capslock LED |
||||||
* B0 not connected |
* B0 not connected |
||||||
*/ |
*/ |
||||||
inline void gh60_caps_led_on(void) { DDRB |= (1<<2); PORTB &= ~(1<<2); } |
inline void gh60_caps_led_on(void) { DDRB |= (1<<2); PORTB &= ~(1<<2); } |
||||||
inline void gh60_poker_leds_on(void) { DDRF |= (1<<4); PORTF &= ~(1<<4); } |
inline void gh60_poker_leds_on(void) { DDRF |= (1<<4); PORTF &= ~(1<<4); } |
||||||
inline void gh60_fn_led_on(void) { DDRF |= (1<<5); PORTF &= ~(1<<5); } |
inline void gh60_fn_led_on(void) { DDRF |= (1<<5); PORTF &= ~(1<<5); } |
||||||
inline void gh60_esc_led_on(void) { DDRF |= (1<<6); PORTF &= ~(1<<6); } |
inline void gh60_esc_led_on(void) { DDRF |= (1<<6); PORTF &= ~(1<<6); } |
||||||
inline void gh60_wasd_leds_on(void) { DDRF |= (1<<7); PORTF &= ~(1<<7); } |
inline void gh60_wasd_leds_on(void) { DDRF |= (1<<7); PORTF &= ~(1<<7); } |
||||||
|
|
||||||
inline void gh60_caps_led_off(void) { DDRB &= ~(1<<2); PORTB &= ~(1<<2); } |
inline void gh60_caps_led_off(void) { DDRB &= ~(1<<2); PORTB &= ~(1<<2); } |
||||||
inline void gh60_poker_leds_off(void) { DDRF &= ~(1<<4); PORTF &= ~(1<<4); } |
inline void gh60_poker_leds_off(void) { DDRF &= ~(1<<4); PORTF &= ~(1<<4); } |
||||||
inline void gh60_fn_led_off(void) { DDRF &= ~(1<<5); PORTF &= ~(1<<5); } |
inline void gh60_fn_led_off(void) { DDRF &= ~(1<<5); PORTF &= ~(1<<5); } |
||||||
inline void gh60_esc_led_off(void) { DDRF &= ~(1<<6); PORTF &= ~(1<<6); } |
inline void gh60_esc_led_off(void) { DDRF &= ~(1<<6); PORTF &= ~(1<<6); } |
||||||
inline void gh60_wasd_leds_off(void) { DDRF &= ~(1<<7); PORTF &= ~(1<<7); } |
inline void gh60_wasd_leds_off(void) { DDRF &= ~(1<<7); PORTF &= ~(1<<7); } |
||||||
|
|
||||||
/* GH60 keymap definition macro
|
/* GH60 keymap definition macro
|
||||||
* K2C, K31 and K3C are extra keys for ISO |
* K2C, K31 and K3C are extra keys for ISO |
||||||
*/ |
*/ |
||||||
#define KEYMAP( \ |
#define KEYMAP( \ |
||||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
||||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
||||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
|
||||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
|
||||||
K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \
|
K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \
|
||||||
) { \
|
) { \
|
||||||
{ KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D }, \
|
{ KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D }, \
|
||||||
{ KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D }, \
|
{ KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D }, \
|
||||||
{ KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D }, \
|
{ KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D }, \
|
||||||
{ KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D }, \
|
{ KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D }, \
|
||||||
{ KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_NO, KC_##K45, KC_NO, KC_NO, KC_NO, KC_##K49, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D } \
|
{ KC_##K40, KC_##K41, KC_##K42, KC_NO, KC_NO, KC_##K45, KC_NO, KC_NO, KC_NO, KC_##K49, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D } \
|
||||||
} |
} |
||||||
|
|
||||||
/* ANSI valiant. No extra keys for ISO */ |
/* ANSI valiant. No extra keys for ISO */ |
||||||
#define KEYMAP_ANSI( \ |
#define KEYMAP_ANSI( \ |
||||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
||||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
||||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
||||||
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
|
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
|
||||||
K40, K41, K42, K45, K4A, K4B, K4C, K4D \
|
K40, K41, K42, K45, K4A, K4B, K4C, K4D \
|
||||||
) KEYMAP( \
|
) KEYMAP( \
|
||||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
||||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
||||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, NO, K2D, \
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, NO, K2D, \
|
||||||
K30, NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, NO, K3D, \
|
K30, NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, NO, K3D, \
|
||||||
K40, K41, K42, K45, NO, K4A, K4B, K4C, K4D \
|
K40, K41, K42, K45, NO, K4A, K4B, K4C, K4D \
|
||||||
) |
) |
||||||
|
|
||||||
#define KEYMAP_HHKB( \ |
#define KEYMAP_HHKB( \ |
||||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K49,\
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K49,\
|
||||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
||||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
||||||
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3C, \
|
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3C, \
|
||||||
K40, K41, K42, K45, K4A, K4B, K4C, K4D \
|
K40, K41, K42, K45, K4A, K4B, K4C, K4D \
|
||||||
) KEYMAP( \
|
) KEYMAP( \
|
||||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
||||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
||||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, NO, K2D, \
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, NO, K2D, \
|
||||||
K30, NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
|
K30, NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
|
||||||
K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \
|
K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D \
|
||||||
) |
) |
||||||
|
|
||||||
#endif |
#endif |
||||||
|
@ -1,112 +1,112 @@ |
|||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
# On command line:
|
# On command line:
|
||||||
#
|
#
|
||||||
# make all = Make software.
|
# make all = Make software.
|
||||||
#
|
#
|
||||||
# make clean = Clean out built project files.
|
# make clean = Clean out built project files.
|
||||||
#
|
#
|
||||||
# make coff = Convert ELF to AVR COFF.
|
# make coff = Convert ELF to AVR COFF.
|
||||||
#
|
#
|
||||||
# make extcoff = Convert ELF to AVR Extended COFF.
|
# make extcoff = Convert ELF to AVR Extended COFF.
|
||||||
#
|
#
|
||||||
# make program = Download the hex file to the device.
|
# make program = Download the hex file to the device.
|
||||||
# Please customize your programmer settings(PROGRAM_CMD)
|
# Please customize your programmer settings(PROGRAM_CMD)
|
||||||
#
|
#
|
||||||
# make teensy = Download the hex file to the device, using teensy_loader_cli.
|
# make teensy = Download the hex file to the device, using teensy_loader_cli.
|
||||||
# (must have teensy_loader_cli installed).
|
# (must have teensy_loader_cli installed).
|
||||||
#
|
#
|
||||||
# make dfu = Download the hex file to the device, using dfu-programmer (must
|
# make dfu = Download the hex file to the device, using dfu-programmer (must
|
||||||
# have dfu-programmer installed).
|
# have dfu-programmer installed).
|
||||||
#
|
#
|
||||||
# make flip = Download the hex file to the device, using Atmel FLIP (must
|
# make flip = Download the hex file to the device, using Atmel FLIP (must
|
||||||
# have Atmel FLIP installed).
|
# have Atmel FLIP installed).
|
||||||
#
|
#
|
||||||
# make dfu-ee = Download the eeprom file to the device, using dfu-programmer
|
# make dfu-ee = Download the eeprom file to the device, using dfu-programmer
|
||||||
# (must have dfu-programmer installed).
|
# (must have dfu-programmer installed).
|
||||||
#
|
#
|
||||||
# make flip-ee = Download the eeprom file to the device, using Atmel FLIP
|
# make flip-ee = Download the eeprom file to the device, using Atmel FLIP
|
||||||
# (must have Atmel FLIP installed).
|
# (must have Atmel FLIP installed).
|
||||||
#
|
#
|
||||||
# make debug = Start either simulavr or avarice as specified for debugging,
|
# make debug = Start either simulavr or avarice as specified for debugging,
|
||||||
# with avr-gdb or avr-insight as the front end for debugging.
|
# with avr-gdb or avr-insight as the front end for debugging.
|
||||||
#
|
#
|
||||||
# make filename.s = Just compile filename.c into the assembler code only.
|
# make filename.s = Just compile filename.c into the assembler code only.
|
||||||
#
|
#
|
||||||
# make filename.i = Create a preprocessed source file for use in submitting
|
# make filename.i = Create a preprocessed source file for use in submitting
|
||||||
# bug reports to the GCC project.
|
# bug reports to the GCC project.
|
||||||
#
|
#
|
||||||
# To rebuild project do "make clean" then "make all".
|
# To rebuild project do "make clean" then "make all".
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
# MCU name
|
# MCU name
|
||||||
#MCU = at90usb1287
|
#MCU = at90usb1287
|
||||||
MCU = atmega32u4
|
MCU = atmega32u4
|
||||||
|
|
||||||
# Processor frequency.
|
# Processor frequency.
|
||||||
# This will define a symbol, F_CPU, in all source code files equal to the
|
# 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
|
# 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
|
# 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.
|
# 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
|
# 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
|
# 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
|
# 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
|
# reflect the processor speed set externally so that the code can use accurate
|
||||||
# software delays.
|
# software delays.
|
||||||
F_CPU = 16000000
|
F_CPU = 16000000
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# LUFA specific
|
# LUFA specific
|
||||||
#
|
#
|
||||||
# Target architecture (see library "Board Types" documentation).
|
# Target architecture (see library "Board Types" documentation).
|
||||||
ARCH = AVR8
|
ARCH = AVR8
|
||||||
|
|
||||||
# Input clock frequency.
|
# Input clock frequency.
|
||||||
# This will define a symbol, F_USB, in all source code files equal to the
|
# 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
|
# 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
|
# 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
|
# 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'
|
# 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
|
# at the end, this will be done automatically to create a 32-bit value in your
|
||||||
# source code.
|
# source code.
|
||||||
#
|
#
|
||||||
# If no clock division is performed on the input clock inside the AVR (via the
|
# 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.
|
# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
|
||||||
F_USB = $(F_CPU)
|
F_USB = $(F_CPU)
|
||||||
|
|
||||||
# Interrupt driven control endpoint task(+60)
|
# Interrupt driven control endpoint task(+60)
|
||||||
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
|
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
|
||||||
|
|
||||||
|
|
||||||
# Boot Section Size in *bytes*
|
# Boot Section Size in *bytes*
|
||||||
# Teensy halfKay 512
|
# Teensy halfKay 512
|
||||||
# Teensy++ halfKay 1024
|
# Teensy++ halfKay 1024
|
||||||
# Atmel DFU loader 4096
|
# Atmel DFU loader 4096
|
||||||
# LUFA bootloader 4096
|
# LUFA bootloader 4096
|
||||||
# USBaspLoader 2048
|
# USBaspLoader 2048
|
||||||
OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
||||||
|
|
||||||
|
|
||||||
# Build Options
|
# Build Options
|
||||||
# comment out to disable the options.
|
# comment out to disable the options.
|
||||||
#
|
#
|
||||||
BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
|
BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
|
||||||
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
|
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
|
||||||
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
||||||
# CONSOLE_ENABLE ?= yes # Console for debug(+400)
|
# CONSOLE_ENABLE ?= yes # Console for debug(+400)
|
||||||
# COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
# COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
||||||
KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key
|
KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key
|
||||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
|
# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
|
||||||
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
|
# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
|
||||||
# MIDI_ENABLE ?= YES # MIDI controls
|
# MIDI_ENABLE ?= YES # MIDI controls
|
||||||
# UNICODE_ENABLE ?= YES # Unicode
|
# UNICODE_ENABLE ?= YES # Unicode
|
||||||
# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
|
# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
RGBLIGHT_ENABLE ?= yes # Enable RGB Underglow
|
RGBLIGHT_ENABLE ?= yes # Enable RGB Underglow
|
||||||
|
|
||||||
ifndef QUANTUM_DIR |
ifndef QUANTUM_DIR |
||||||
include ../../../../Makefile
|
include ../../../../Makefile
|
||||||
endif |
endif |
||||||
|
|
||||||
|
@ -1,190 +1,190 @@ |
|||||||
/*
|
/*
|
||||||
Copyright 2012 Jun Wako <wakojun@gmail.com> |
Copyright 2012 Jun Wako <wakojun@gmail.com> |
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify |
This program is free software: you can redistribute it and/or modify |
||||||
it under the terms of the GNU General Public License as published by |
it under the terms of the GNU General Public License as published by |
||||||
the Free Software Foundation, either version 2 of the License, or |
the Free Software Foundation, either version 2 of the License, or |
||||||
(at your option) any later version. |
(at your option) any later version. |
||||||
|
|
||||||
This program is distributed in the hope that it will be useful, |
This program is distributed in the hope that it will be useful, |
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
GNU General Public License for more details. |
GNU General Public License for more details. |
||||||
|
|
||||||
You should have received a copy of the GNU General Public License |
You should have received a copy of the GNU General Public License |
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/ |
*/ |
||||||
|
|
||||||
#ifndef CONFIG_H |
#ifndef CONFIG_H |
||||||
#define CONFIG_H |
#define CONFIG_H |
||||||
|
|
||||||
#include "config_common.h" |
#include "config_common.h" |
||||||
|
|
||||||
/* USB Device descriptor parameter */ |
/* USB Device descriptor parameter */ |
||||||
#define VENDOR_ID 0xFEED |
#define VENDOR_ID 0xFEED |
||||||
#define PRODUCT_ID 0x6060 |
#define PRODUCT_ID 0x6060 |
||||||
#define DEVICE_VER 0x0001 |
#define DEVICE_VER 0x0001 |
||||||
#define MANUFACTURER geekhack |
#define MANUFACTURER geekhack |
||||||
#define PRODUCT GH60 |
#define PRODUCT GH60 |
||||||
#define DESCRIPTION t.m.k. keyboard firmware for GH60 |
#define DESCRIPTION t.m.k. keyboard firmware for GH60 |
||||||
|
|
||||||
/* key matrix size */ |
/* key matrix size */ |
||||||
#define MATRIX_ROWS 5 |
#define MATRIX_ROWS 5 |
||||||
#define MATRIX_COLS 14 |
#define MATRIX_COLS 14 |
||||||
|
|
||||||
/*
|
/*
|
||||||
* Keyboard Matrix Assignments |
* Keyboard Matrix Assignments |
||||||
* |
* |
||||||
* Change this to how you wired your keyboard |
* Change this to how you wired your keyboard |
||||||
* COLS: AVR pins used for columns, left to right |
* COLS: AVR pins used for columns, left to right |
||||||
* ROWS: AVR pins used for rows, top to bottom |
* ROWS: AVR pins used for rows, top to bottom |
||||||
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) |
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) |
||||||
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) |
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) |
||||||
* |
* |
||||||
*/ |
*/ |
||||||
#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 } |
#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 } |
||||||
// Rev A
|
// Rev A
|
||||||
// #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B0, B5, B4, D7, D6, B3 }
|
// #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B0, B5, B4, D7, D6, B3 }
|
||||||
// Rev B/C
|
// Rev B/C
|
||||||
#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3 } |
#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3 } |
||||||
#define UNUSED_PINS |
#define UNUSED_PINS |
||||||
|
|
||||||
/* COL2ROW or ROW2COL */ |
/* COL2ROW or ROW2COL */ |
||||||
#define DIODE_DIRECTION COL2ROW |
#define DIODE_DIRECTION COL2ROW |
||||||
|
|
||||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ |
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ |
||||||
#define DEBOUNCING_DELAY 5 |
#define DEBOUNCING_DELAY 5 |
||||||
|
|
||||||
/* define if matrix has ghost (lacks anti-ghosting diodes) */ |
/* define if matrix has ghost (lacks anti-ghosting diodes) */ |
||||||
//#define MATRIX_HAS_GHOST
|
//#define MATRIX_HAS_GHOST
|
||||||
|
|
||||||
/* number of backlight levels */ |
/* number of backlight levels */ |
||||||
#define BACKLIGHT_LEVELS 3 |
#define BACKLIGHT_LEVELS 3 |
||||||
|
|
||||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ |
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ |
||||||
#define LOCKING_SUPPORT_ENABLE |
#define LOCKING_SUPPORT_ENABLE |
||||||
/* Locking resynchronize hack */ |
/* Locking resynchronize hack */ |
||||||
#define LOCKING_RESYNC_ENABLE |
#define LOCKING_RESYNC_ENABLE |
||||||
|
|
||||||
/*
|
/*
|
||||||
* Force NKRO |
* Force NKRO |
||||||
* |
* |
||||||
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved |
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved |
||||||
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the |
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the |
||||||
* makefile for this to work.) |
* makefile for this to work.) |
||||||
* |
* |
||||||
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) |
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) |
||||||
* until the next keyboard reset. |
* until the next keyboard reset. |
||||||
* |
* |
||||||
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is |
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is |
||||||
* fully operational during normal computer usage. |
* fully operational during normal computer usage. |
||||||
* |
* |
||||||
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) |
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) |
||||||
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by |
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by |
||||||
* bootmagic, NKRO mode will always be enabled until it is toggled again during a |
* bootmagic, NKRO mode will always be enabled until it is toggled again during a |
||||||
* power-up. |
* power-up. |
||||||
* |
* |
||||||
*/ |
*/ |
||||||
//#define FORCE_NKRO
|
//#define FORCE_NKRO
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Magic Key Options |
* Magic Key Options |
||||||
* |
* |
||||||
* Magic keys are hotkey commands that allow control over firmware functions of |
* Magic keys are hotkey commands that allow control over firmware functions of |
||||||
* the keyboard. They are best used in combination with the HID Listen program, |
* the keyboard. They are best used in combination with the HID Listen program, |
||||||
* found here: https://www.pjrc.com/teensy/hid_listen.html
|
* found here: https://www.pjrc.com/teensy/hid_listen.html
|
||||||
* |
* |
||||||
* The options below allow the magic key functionality to be changed. This is |
* The options below allow the magic key functionality to be changed. This is |
||||||
* useful if your keyboard/keypad is missing keys and you want magic key support. |
* useful if your keyboard/keypad is missing keys and you want magic key support. |
||||||
* |
* |
||||||
*/ |
*/ |
||||||
|
|
||||||
/* key combination for magic key command */ |
/* key combination for magic key command */ |
||||||
#define IS_COMMAND() ( \ |
#define IS_COMMAND() ( \ |
||||||
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
||||||
) |
) |
||||||
|
|
||||||
/* control how magic key switches layers */ |
/* control how magic key switches layers */ |
||||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
|
||||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
|
||||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
|
||||||
|
|
||||||
/* override magic key keymap */ |
/* override magic key keymap */ |
||||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
|
||||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
|
||||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
|
||||||
//#define MAGIC_KEY_HELP1 H
|
//#define MAGIC_KEY_HELP1 H
|
||||||
//#define MAGIC_KEY_HELP2 SLASH
|
//#define MAGIC_KEY_HELP2 SLASH
|
||||||
//#define MAGIC_KEY_DEBUG D
|
//#define MAGIC_KEY_DEBUG D
|
||||||
//#define MAGIC_KEY_DEBUG_MATRIX X
|
//#define MAGIC_KEY_DEBUG_MATRIX X
|
||||||
//#define MAGIC_KEY_DEBUG_KBD K
|
//#define MAGIC_KEY_DEBUG_KBD K
|
||||||
//#define MAGIC_KEY_DEBUG_MOUSE M
|
//#define MAGIC_KEY_DEBUG_MOUSE M
|
||||||
//#define MAGIC_KEY_VERSION V
|
//#define MAGIC_KEY_VERSION V
|
||||||
//#define MAGIC_KEY_STATUS S
|
//#define MAGIC_KEY_STATUS S
|
||||||
//#define MAGIC_KEY_CONSOLE C
|
//#define MAGIC_KEY_CONSOLE C
|
||||||
//#define MAGIC_KEY_LAYER0_ALT1 ESC
|
//#define MAGIC_KEY_LAYER0_ALT1 ESC
|
||||||
//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
|
//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
|
||||||
//#define MAGIC_KEY_LAYER0 0
|
//#define MAGIC_KEY_LAYER0 0
|
||||||
//#define MAGIC_KEY_LAYER1 1
|
//#define MAGIC_KEY_LAYER1 1
|
||||||
//#define MAGIC_KEY_LAYER2 2
|
//#define MAGIC_KEY_LAYER2 2
|
||||||
//#define MAGIC_KEY_LAYER3 3
|
//#define MAGIC_KEY_LAYER3 3
|
||||||
//#define MAGIC_KEY_LAYER4 4
|
//#define MAGIC_KEY_LAYER4 4
|
||||||
//#define MAGIC_KEY_LAYER5 5
|
//#define MAGIC_KEY_LAYER5 5
|
||||||
//#define MAGIC_KEY_LAYER6 6
|
//#define MAGIC_KEY_LAYER6 6
|
||||||
//#define MAGIC_KEY_LAYER7 7
|
//#define MAGIC_KEY_LAYER7 7
|
||||||
//#define MAGIC_KEY_LAYER8 8
|
//#define MAGIC_KEY_LAYER8 8
|
||||||
//#define MAGIC_KEY_LAYER9 9
|
//#define MAGIC_KEY_LAYER9 9
|
||||||
//#define MAGIC_KEY_BOOTLOADER PAUSE
|
//#define MAGIC_KEY_BOOTLOADER PAUSE
|
||||||
//#define MAGIC_KEY_LOCK CAPS
|
//#define MAGIC_KEY_LOCK CAPS
|
||||||
//#define MAGIC_KEY_EEPROM E
|
//#define MAGIC_KEY_EEPROM E
|
||||||
//#define MAGIC_KEY_NKRO N
|
//#define MAGIC_KEY_NKRO N
|
||||||
//#define MAGIC_KEY_SLEEP_LED Z
|
//#define MAGIC_KEY_SLEEP_LED Z
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Feature disable options |
* Feature disable options |
||||||
* These options are also useful to firmware size reduction. |
* These options are also useful to firmware size reduction. |
||||||
*/ |
*/ |
||||||
|
|
||||||
/* disable debug print */ |
/* disable debug print */ |
||||||
//#define NO_DEBUG
|
//#define NO_DEBUG
|
||||||
|
|
||||||
/* disable print */ |
/* disable print */ |
||||||
//#define NO_PRINT
|
//#define NO_PRINT
|
||||||
|
|
||||||
/* disable action features */ |
/* disable action features */ |
||||||
//#define NO_ACTION_LAYER
|
//#define NO_ACTION_LAYER
|
||||||
//#define NO_ACTION_TAPPING
|
//#define NO_ACTION_TAPPING
|
||||||
//#define NO_ACTION_ONESHOT
|
//#define NO_ACTION_ONESHOT
|
||||||
//#define NO_ACTION_MACRO
|
//#define NO_ACTION_MACRO
|
||||||
//#define NO_ACTION_FUNCTION
|
//#define NO_ACTION_FUNCTION
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* RGB Underglow |
* RGB Underglow |
||||||
* These settings are for the F4 by default: |
* These settings are for the F4 by default: |
||||||
*
|
*
|
||||||
* |
* |
||||||
* #define ws2812_PORTREG PORTF |
* #define ws2812_PORTREG PORTF |
||||||
* #define ws2812_DDRREG DDRF |
* #define ws2812_DDRREG DDRF |
||||||
* #define ws2812_pin PF4 |
* #define ws2812_pin PF4 |
||||||
* #define RGBLED_NUM 14 // Number of LEDs
|
* #define RGBLED_NUM 14 // Number of LEDs
|
||||||
* #define RGBLIGHT_HUE_STEP 10 |
* #define RGBLIGHT_HUE_STEP 10 |
||||||
* #define RGBLIGHT_SAT_STEP 17 |
* #define RGBLIGHT_SAT_STEP 17 |
||||||
* #define RGBLIGHT_VAL_STEP 17 |
* #define RGBLIGHT_VAL_STEP 17 |
||||||
* |
* |
||||||
* The firmware supports 5 different light effects, and the color (hue, saturation, brightness) can be customized in most effects.
|
* The firmware supports 5 different light effects, and the color (hue, saturation, brightness) can be customized in most effects.
|
||||||
* To control the underglow, you need to modify your keymap file to assign those functions to some keys/key combinations.
|
* To control the underglow, you need to modify your keymap file to assign those functions to some keys/key combinations.
|
||||||
* For details, please check this keymap. keyboard/planck/keymaps/yang/keymap.c |
* For details, please check this keymap. keyboard/planck/keymaps/yang/keymap.c |
||||||
*/ |
*/ |
||||||
|
|
||||||
/* Deprecated code below
|
/* Deprecated code below
|
||||||
#define ws2812_PORTREG PORTF |
#define ws2812_PORTREG PORTF |
||||||
#define ws2812_DDRREG DDRF |
#define ws2812_DDRREG DDRF |
||||||
#define ws2812_pin PF4 |
#define ws2812_pin PF4 |
||||||
*/
|
*/
|
||||||
#define RGB_DI_PIN F4 |
#define RGB_DI_PIN F4 |
||||||
#define RGBLIGHT_TIMER |
#define RGBLIGHT_TIMER |
||||||
#define RGBLED_NUM 8 // Number of LEDs
|
#define RGBLED_NUM 8 // Number of LEDs
|
||||||
#define RGBLIGHT_HUE_STEP 8 |
#define RGBLIGHT_HUE_STEP 8 |
||||||
#define RGBLIGHT_SAT_STEP 8 |
#define RGBLIGHT_SAT_STEP 8 |
||||||
#define RGBLIGHT_VAL_STEP 8 |
#define RGBLIGHT_VAL_STEP 8 |
||||||
#endif |
#endif |
||||||
|
@ -1,18 +1,18 @@ |
|||||||
/* Column pin configuration |
/* Column pin configuration |
||||||
* col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 |
* col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 |
||||||
* pin: F0 F1 E6 C7 C6 B6 D4 B1 B7 B5 B4 D7 D6 B3 (Rev.C) |
* pin: F0 F1 E6 C7 C6 B6 D4 B1 B7 B5 B4 D7 D6 B3 (Rev.C) |
||||||
*/ |
*/ |
||||||
|
|
||||||
/* Row pin configuration |
/* Row pin configuration |
||||||
* row: 0 1 2 3 4 |
* row: 0 1 2 3 4 |
||||||
* pin: D0 D1 D2 D3 D5 |
* pin: D0 D1 D2 D3 D5 |
||||||
*/ |
*/ |
||||||
|
|
||||||
GPIO pads |
GPIO pads |
||||||
0 F7 WASD LEDs |
0 F7 WASD LEDs |
||||||
1 F6 ESC LED |
1 F6 ESC LED |
||||||
2 F5 FN LED |
2 F5 FN LED |
||||||
3 F4 POKER Arrow LEDs |
3 F4 POKER Arrow LEDs |
||||||
|
|
||||||
B2 Capslock LED |
B2 Capslock LED |
||||||
B0 not connected |
B0 not connected |
@ -1,60 +1,62 @@ |
|||||||
## gh60 Rev C keyboard firmware |
## gh60 Rev C keyboard firmware |
||||||
|
|
||||||
 |
 |
||||||
|
|
||||||
/* Column pin configuration |
/* Column pin configuration |
||||||
* col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 |
* col: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 |
||||||
* pin: F0 F1 E6 C7 C6 B6 D4 B1 B7 B5 B4 D7 D6 B3 (Rev.C) |
* pin: F0 F1 E6 C7 C6 B6 D4 B1 B7 B5 B4 D7 D6 B3 (Rev.C) |
||||||
*/ |
*/ |
||||||
|
|
||||||
/* Row pin configuration |
/* Row pin configuration |
||||||
* row: 0 1 2 3 4 |
* row: 0 1 2 3 4 |
||||||
* pin: D0 D1 D2 D3 D5 |
* pin: D0 D1 D2 D3 D5 |
||||||
*/ |
*/ |
||||||
|
|
||||||
GPIO pads |
GPIO pads |
||||||
0 F7 WASD LEDs |
0 F7 WASD LEDs |
||||||
1 F6 ESC LED |
1 F6 ESC LED |
||||||
2 F5 FN LED |
2 F5 FN LED |
||||||
3 F4 POKER Arrow LEDs |
3 F4 POKER Arrow LEDs |
||||||
|
|
||||||
B2 Capslock LED |
B2 Capslock LED |
||||||
B0 not connected |
B0 not connected |
||||||
|
|
||||||
Functions to controls LED clusters |
Functions to controls LED clusters |
||||||
|
|
||||||
gh60_caps_led_on() |
gh60_caps_led_on() |
||||||
gh60_poker_leds_on() |
gh60_poker_leds_on() |
||||||
gh60_fn_led_on() |
gh60_fn_led_on() |
||||||
gh60_esc_led_on() |
gh60_esc_led_on() |
||||||
gh60_wasd_leds_on() |
gh60_wasd_leds_on() |
||||||
|
|
||||||
gh60_caps_led_off() |
gh60_caps_led_off() |
||||||
gh60_poker_leds_off() |
gh60_poker_leds_off() |
||||||
gh60_fn_led_off() |
gh60_fn_led_off() |
||||||
gh60_esc_led_off() |
gh60_esc_led_off() |
||||||
gh60_wasd_leds_off() |
gh60_wasd_leds_off() |
||||||
|
|
||||||
====================== |
====================== |
||||||
|
|
||||||
## Quantum MK Firmware |
## Quantum MK Firmware |
||||||
|
|
||||||
For the full Quantum feature list, see [the parent readme.md](/readme.md). |
For the full Quantum feature list, see [the parent readme.md](/readme.md). |
||||||
|
|
||||||
## Building |
## Building |
||||||
|
|
||||||
Download or clone the whole firmware and navigate to the keyboards/gh60_rev_c folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. |
Download or clone the whole firmware and navigate to the keyboards/gh60_rev_c folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. |
||||||
|
|
||||||
Depending on which keymap you would like to use, you will have to compile slightly differently. |
Depending on which keymap you would like to use, you will have to compile slightly differently. |
||||||
|
|
||||||
### Default |
### Default |
||||||
To build with the default keymap, simply run `make`. |
To build with the default keymap, simply run `make default`. |
||||||
|
|
||||||
### Other Keymaps |
### Other Keymaps |
||||||
Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `<name>.c` in the keymaps folder, and see keymap document (you can find in top readme.md) and existent keymap files. |
Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `<name>.c` in the keymaps folder, and see keymap document (you can find in top readme.md) and existent keymap files. |
||||||
|
|
||||||
To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: |
To build the firmware binary hex file with a keymap just do `make` with a keymap like this: |
||||||
``` |
|
||||||
$ make KEYMAP=[default|jack|<name>] |
``` |
||||||
``` |
$ make [default|jack|<name>] |
||||||
Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder. |
``` |
||||||
|
|
||||||
|
Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder. |
||||||
|
@ -0,0 +1,66 @@ |
|||||||
|
# MCU name
|
||||||
|
#MCU = at90usb1287
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
# Boot Section Size in *bytes*
|
||||||
|
# Teensy halfKay 512
|
||||||
|
# Teensy++ halfKay 1024
|
||||||
|
# Atmel DFU loader 4096
|
||||||
|
# LUFA bootloader 4096
|
||||||
|
# USBaspLoader 2048
|
||||||
|
OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
||||||
|
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# comment out to disable the options.
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
|
||||||
|
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
|
||||||
|
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
||||||
|
# CONSOLE_ENABLE ?= yes # Console for debug(+400)
|
||||||
|
# COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
||||||
|
KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
|
||||||
|
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
|
||||||
|
# MIDI_ENABLE ?= YES # MIDI controls
|
||||||
|
# UNICODE_ENABLE ?= YES # Unicode
|
||||||
|
# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
|
@ -1,73 +1,3 @@ |
|||||||
|
ifndef MAKEFILE_INCLUDED |
||||||
# MCU name
|
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
# Boot Section Size in *bytes*
|
|
||||||
# Teensy halfKay 512
|
|
||||||
# Teensy++ halfKay 1024
|
|
||||||
# Atmel DFU loader 4096
|
|
||||||
# LUFA bootloader 4096
|
|
||||||
# USBaspLoader 2048
|
|
||||||
OPT_DEFS += -DBOOTLOADER_SIZE=512
|
|
||||||
|
|
||||||
|
|
||||||
# Build Options
|
|
||||||
# change yes to no to disable
|
|
||||||
#
|
|
||||||
BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
|
|
||||||
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
|
|
||||||
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
|
||||||
CONSOLE_ENABLE ?= yes # Console for debug(+400)
|
|
||||||
COMMAND_ENABLE ?= yes # 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
|
|
||||||
MIDI_ENABLE ?= no # MIDI controls
|
|
||||||
UNICODE_ENABLE ?= no # Unicode
|
|
||||||
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
|
|
||||||
AUDIO_ENABLE ?= no # Audio output on port C6
|
|
||||||
|
|
||||||
ifndef QUANTUM_DIR |
|
||||||
include ../../../Makefile
|
include ../../../Makefile
|
||||||
endif |
endif |
||||||
|
|
||||||
|
|
@ -0,0 +1,73 @@ |
|||||||
|
|
||||||
|
# MCU name
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
# Boot Section Size in *bytes*
|
||||||
|
# Teensy halfKay 512
|
||||||
|
# Teensy++ halfKay 1024
|
||||||
|
# Atmel DFU loader 4096
|
||||||
|
# LUFA bootloader 4096
|
||||||
|
# USBaspLoader 2048
|
||||||
|
OPT_DEFS += -DBOOTLOADER_SIZE=512
|
||||||
|
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
|
||||||
|
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
|
||||||
|
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
||||||
|
CONSOLE_ENABLE ?= yes # Console for debug(+400)
|
||||||
|
COMMAND_ENABLE ?= yes # 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
|
||||||
|
MIDI_ENABLE ?= no # MIDI controls
|
||||||
|
UNICODE_ENABLE ?= no # Unicode
|
||||||
|
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
|
AUDIO_ENABLE ?= no # Audio output on port C6
|
||||||
|
|
||||||
|
ifndef QUANTUM_DIR |
||||||
|
include ../../../Makefile
|
||||||
|
endif |
||||||
|
|
||||||
|
|
@ -1,3 +1,3 @@ |
|||||||
ifndef QUANTUM_DIR |
ifndef MAKEFILE_INCLUDED |
||||||
include ../../Makefile
|
include ../../Makefile
|
||||||
endif |
endif |
@ -1,73 +1,3 @@ |
|||||||
|
ifndef MAKEFILE_INCLUDED |
||||||
# MCU name
|
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
# Boot Section Size in *bytes*
|
|
||||||
# Teensy halfKay 512
|
|
||||||
# Teensy++ halfKay 1024
|
|
||||||
# Atmel DFU loader 4096
|
|
||||||
# LUFA bootloader 4096
|
|
||||||
# USBaspLoader 2048
|
|
||||||
OPT_DEFS += -DBOOTLOADER_SIZE=512
|
|
||||||
|
|
||||||
|
|
||||||
# Build Options
|
|
||||||
# change yes to no to disable
|
|
||||||
#
|
|
||||||
BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
|
|
||||||
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
|
|
||||||
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
|
||||||
CONSOLE_ENABLE ?= yes # Console for debug(+400)
|
|
||||||
COMMAND_ENABLE ?= yes # 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
|
|
||||||
MIDI_ENABLE ?= no # MIDI controls
|
|
||||||
UNICODE_ENABLE ?= no # Unicode
|
|
||||||
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
|
|
||||||
AUDIO_ENABLE ?= no # Audio output on port C6
|
|
||||||
|
|
||||||
ifndef QUANTUM_DIR |
|
||||||
include ../../../Makefile
|
include ../../../Makefile
|
||||||
endif |
endif |
||||||
|
|
||||||
|
|
@ -0,0 +1,73 @@ |
|||||||
|
|
||||||
|
# MCU name
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
# Boot Section Size in *bytes*
|
||||||
|
# Teensy halfKay 512
|
||||||
|
# Teensy++ halfKay 1024
|
||||||
|
# Atmel DFU loader 4096
|
||||||
|
# LUFA bootloader 4096
|
||||||
|
# USBaspLoader 2048
|
||||||
|
OPT_DEFS += -DBOOTLOADER_SIZE=512
|
||||||
|
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
|
||||||
|
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
|
||||||
|
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
||||||
|
CONSOLE_ENABLE ?= yes # Console for debug(+400)
|
||||||
|
COMMAND_ENABLE ?= yes # 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
|
||||||
|
MIDI_ENABLE ?= no # MIDI controls
|
||||||
|
UNICODE_ENABLE ?= no # Unicode
|
||||||
|
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
|
AUDIO_ENABLE ?= no # Audio output on port C6
|
||||||
|
|
||||||
|
ifndef QUANTUM_DIR |
||||||
|
include ../../../Makefile
|
||||||
|
endif |
||||||
|
|
||||||
|
|
@ -1,71 +1,3 @@ |
|||||||
# MCU name
|
ifndef MAKEFILE_INCLUDED |
||||||
#MCU = at90usb1287
|
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
# Boot Section Size in *bytes*
|
|
||||||
# Teensy halfKay 512
|
|
||||||
# Teensy++ halfKay 1024
|
|
||||||
# Atmel DFU loader 4096
|
|
||||||
# LUFA bootloader 4096
|
|
||||||
# USBaspLoader 2048
|
|
||||||
OPT_DEFS += -DBOOTLOADER_SIZE=512
|
|
||||||
|
|
||||||
# Build Options
|
|
||||||
# change to "no" to disable the options, or define them in the Makefile in
|
|
||||||
# the appropriate keymap folder that will get included automatically
|
|
||||||
#
|
|
||||||
BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
|
|
||||||
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
|
|
||||||
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
|
||||||
CONSOLE_ENABLE ?= no # Console for debug(+400)
|
|
||||||
COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
|
||||||
NKRO_ENABLE ?= yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
|
||||||
BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality
|
|
||||||
MIDI_ENABLE ?= no # MIDI controls
|
|
||||||
AUDIO_ENABLE ?= no # Audio output on port C6
|
|
||||||
UNICODE_ENABLE ?= no # Unicode
|
|
||||||
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
|
|
||||||
RGBLIGHT_ENABLE ?= yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
|
|
||||||
|
|
||||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
|
||||||
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
|
|
||||||
|
|
||||||
ifndef QUANTUM_DIR |
|
||||||
include ../../../Makefile
|
include ../../../Makefile
|
||||||
endif |
endif |
@ -0,0 +1,67 @@ |
|||||||
|
# MCU name
|
||||||
|
#MCU = at90usb1287
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
# Boot Section Size in *bytes*
|
||||||
|
# Teensy halfKay 512
|
||||||
|
# Teensy++ halfKay 1024
|
||||||
|
# Atmel DFU loader 4096
|
||||||
|
# LUFA bootloader 4096
|
||||||
|
# USBaspLoader 2048
|
||||||
|
OPT_DEFS += -DBOOTLOADER_SIZE=512
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change to "no" to disable the options, or define them in the Makefile in
|
||||||
|
# the appropriate keymap folder that will get included automatically
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
|
||||||
|
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
|
||||||
|
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
||||||
|
CONSOLE_ENABLE ?= no # Console for debug(+400)
|
||||||
|
COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
||||||
|
NKRO_ENABLE ?= yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality
|
||||||
|
MIDI_ENABLE ?= no # MIDI controls
|
||||||
|
AUDIO_ENABLE ?= no # Audio output on port C6
|
||||||
|
UNICODE_ENABLE ?= no # Unicode
|
||||||
|
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
|
RGBLIGHT_ENABLE ?= yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
|
||||||
|
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend
|
@ -1,65 +1,3 @@ |
|||||||
|
ifndef MAKEFILE_INCLUDED |
||||||
|
|
||||||
# MCU name
|
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
# Boot Section Size in *bytes*
|
|
||||||
# Teensy halfKay 512
|
|
||||||
# Teensy++ halfKay 1024
|
|
||||||
# Atmel DFU loader 4096
|
|
||||||
# LUFA bootloader 4096
|
|
||||||
# USBaspLoader 2048
|
|
||||||
OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
|
||||||
|
|
||||||
|
|
||||||
# Build Options
|
|
||||||
# comment out to disable the options.
|
|
||||||
#
|
|
||||||
BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
|
|
||||||
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
|
|
||||||
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
|
||||||
CONSOLE_ENABLE ?= yes # Console for debug(+400)
|
|
||||||
COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
|
||||||
#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
|
|
||||||
#NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA
|
|
||||||
|
|
||||||
ifndef QUANTUM_DIR |
|
||||||
include ../../../Makefile
|
include ../../../Makefile
|
||||||
endif |
endif |
@ -0,0 +1,65 @@ |
|||||||
|
|
||||||
|
|
||||||
|
# MCU name
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
# Boot Section Size in *bytes*
|
||||||
|
# Teensy halfKay 512
|
||||||
|
# Teensy++ halfKay 1024
|
||||||
|
# Atmel DFU loader 4096
|
||||||
|
# LUFA bootloader 4096
|
||||||
|
# USBaspLoader 2048
|
||||||
|
OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
||||||
|
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# comment out to disable the options.
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000)
|
||||||
|
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
|
||||||
|
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
||||||
|
CONSOLE_ENABLE ?= yes # Console for debug(+400)
|
||||||
|
COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
||||||
|
#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
|
||||||
|
#NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA
|
||||||
|
|
||||||
|
ifndef QUANTUM_DIR |
||||||
|
include ../../../Makefile
|
||||||
|
endif |
@ -1,89 +1,3 @@ |
|||||||
|
ifndef MAKEFILE_INCLUDED |
||||||
#MCU = at90usb1287
|
|
||||||
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
|
|
||||||
|
|
||||||
# for avr upload
|
|
||||||
USB ?= /dev/cu.usbmodem1421
|
|
||||||
#
|
|
||||||
# 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)
|
|
||||||
|
|
||||||
|
|
||||||
ifdef TEENSY2 |
|
||||||
OPT_DEFS += -DATREUS_TEENSY2
|
|
||||||
ATREUS_UPLOAD_COMMAND = teensy_loader_cli -w -mmcu=$(MCU) $(TARGET).hex
|
|
||||||
else |
|
||||||
OPT_DEFS += -DATREUS_ASTAR
|
|
||||||
OPT_DEFS += -DCATERINA_BOOTLOADER
|
|
||||||
ATREUS_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \
|
|
||||||
avrdude -p $(MCU) -c avr109 -U flash:w:$(TARGET).hex -P $(USB)
|
|
||||||
endif |
|
||||||
# Interrupt driven control endpoint task(+60)
|
|
||||||
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
|
|
||||||
|
|
||||||
|
|
||||||
# MCU name
|
|
||||||
|
|
||||||
# Boot Section Size in *bytes*
|
|
||||||
# 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 = yes # 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
|
|
||||||
MIDI_ENABLE ?= no # MIDI controls
|
|
||||||
UNICODE_ENABLE ?= no # Unicode
|
|
||||||
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
|
|
||||||
AUDIO_ENABLE ?= no # Audio output on port C6
|
|
||||||
RGBLIGHT_ENABLE = yes
|
|
||||||
|
|
||||||
ifndef QUANTUM_DIR |
|
||||||
include ../../../Makefile
|
include ../../../Makefile
|
||||||
endif |
endif |
||||||
|
|
||||||
upload: build |
|
||||||
$(ATREUS_UPLOAD_COMMAND)
|
|
||||||
|
|
@ -0,0 +1,89 @@ |
|||||||
|
|
||||||
|
#MCU = at90usb1287
|
||||||
|
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
|
||||||
|
|
||||||
|
# for avr upload
|
||||||
|
USB ?= /dev/cu.usbmodem1421
|
||||||
|
#
|
||||||
|
# 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)
|
||||||
|
|
||||||
|
|
||||||
|
ifdef TEENSY2 |
||||||
|
OPT_DEFS += -DATREUS_TEENSY2
|
||||||
|
ATREUS_UPLOAD_COMMAND = teensy_loader_cli -w -mmcu=$(MCU) $(TARGET).hex
|
||||||
|
else |
||||||
|
OPT_DEFS += -DATREUS_ASTAR
|
||||||
|
OPT_DEFS += -DCATERINA_BOOTLOADER
|
||||||
|
ATREUS_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \
|
||||||
|
avrdude -p $(MCU) -c avr109 -U flash:w:$(TARGET).hex -P $(USB)
|
||||||
|
endif |
||||||
|
# Interrupt driven control endpoint task(+60)
|
||||||
|
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
|
||||||
|
|
||||||
|
|
||||||
|
# MCU name
|
||||||
|
|
||||||
|
# Boot Section Size in *bytes*
|
||||||
|
# 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 = yes # 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
|
||||||
|
MIDI_ENABLE ?= no # MIDI controls
|
||||||
|
UNICODE_ENABLE ?= no # Unicode
|
||||||
|
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
|
AUDIO_ENABLE ?= no # Audio output on port C6
|
||||||
|
RGBLIGHT_ENABLE = yes
|
||||||
|
|
||||||
|
ifndef QUANTUM_DIR |
||||||
|
include ../../../Makefile
|
||||||
|
endif |
||||||
|
|
||||||
|
upload: build |
||||||
|
$(ATREUS_UPLOAD_COMMAND)
|
||||||
|
|
@ -1,90 +1,3 @@ |
|||||||
|
ifndef MAKEFILE_INCLUDED |
||||||
|
|
||||||
# project specific files
|
|
||||||
SRC = matrix.c
|
|
||||||
|
|
||||||
# MCU name
|
|
||||||
#MCU = at90usb1287
|
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
# Boot Section Size in *bytes*
|
|
||||||
# Teensy halfKay 512
|
|
||||||
# Teensy++ halfKay 1024
|
|
||||||
# Atmel DFU loader 4096
|
|
||||||
# LUFA bootloader 4096
|
|
||||||
# USBaspLoader 2048
|
|
||||||
#OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
|
||||||
|
|
||||||
# as per original hasu settings
|
|
||||||
OPT_DEFS += -DBOOTLOADER_SIZE=512
|
|
||||||
|
|
||||||
# Build Options
|
|
||||||
# comment out to disable the options.
|
|
||||||
#
|
|
||||||
BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
|
|
||||||
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
|
|
||||||
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
|
||||||
CONSOLE_ENABLE ?= yes # Console for debug(+400)
|
|
||||||
COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
|
||||||
CUSTOM_MATRIX ?= yes # Custom matrix file for the HHKB
|
|
||||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
|
||||||
# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
|
|
||||||
# NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
|
||||||
# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
|
|
||||||
# MIDI_ENABLE ?= YES # MIDI controls
|
|
||||||
# UNICODE_ENABLE ?= YES # Unicode
|
|
||||||
# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ifndef QUANTUM_DIR |
|
||||||
include ../../Makefile
|
include ../../Makefile
|
||||||
endif |
endif |
||||||
|
|
||||||
ifneq (, $(findstring yes, $(HHKB_JP))) |
|
||||||
OPT_DEFS += -DHHKB_JP
|
|
||||||
endif |
|
||||||
|
|
||||||
debug-on: EXTRAFLAGS += -DDEBUG -DDEBUG_ACTION |
|
||||||
debug-on: all |
|
||||||
|
|
||||||
debug-off: EXTRAFLAGS += -DNO_DEBUG -DNO_PRINT |
|
||||||
debug-off: OPT_DEFS := $(filter-out -DCONSOLE_ENABLE,$(OPT_DEFS)) |
|
||||||
debug-off: all |
|
@ -0,0 +1,84 @@ |
|||||||
|
|
||||||
|
|
||||||
|
# project specific files
|
||||||
|
SRC = matrix.c
|
||||||
|
|
||||||
|
# MCU name
|
||||||
|
#MCU = at90usb1287
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
# Boot Section Size in *bytes*
|
||||||
|
# Teensy halfKay 512
|
||||||
|
# Teensy++ halfKay 1024
|
||||||
|
# Atmel DFU loader 4096
|
||||||
|
# LUFA bootloader 4096
|
||||||
|
# USBaspLoader 2048
|
||||||
|
#OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
||||||
|
|
||||||
|
# as per original hasu settings
|
||||||
|
OPT_DEFS += -DBOOTLOADER_SIZE=512
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# comment out to disable the options.
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
|
||||||
|
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
|
||||||
|
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
|
||||||
|
CONSOLE_ENABLE ?= yes # Console for debug(+400)
|
||||||
|
COMMAND_ENABLE ?= yes # Commands for debug and configuration
|
||||||
|
CUSTOM_MATRIX ?= yes # Custom matrix file for the HHKB
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
|
||||||
|
# NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
|
||||||
|
# MIDI_ENABLE ?= YES # MIDI controls
|
||||||
|
# UNICODE_ENABLE ?= YES # Unicode
|
||||||
|
# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
|
|
||||||
|
ifneq (, $(findstring yes, $(HHKB_JP))) |
||||||
|
OPT_DEFS += -DHHKB_JP
|
||||||
|
endif |
||||||
|
|
||||||
|
debug-on: EXTRAFLAGS += -DDEBUG -DDEBUG_ACTION |
||||||
|
debug-on: all |
||||||
|
|
||||||
|
debug-off: EXTRAFLAGS += -DNO_DEBUG -DNO_PRINT |
||||||
|
debug-off: OPT_DEFS := $(filter-out -DCONSOLE_ENABLE,$(OPT_DEFS)) |
||||||
|
debug-off: all |
@ -0,0 +1,3 @@ |
|||||||
|
ifndef MAKEFILE_INCLUDED |
||||||
|
include ../../Makefile
|
||||||
|
endif |
File diff suppressed because it is too large
Load Diff
@ -1,353 +1,353 @@ |
|||||||
/*
|
/*
|
||||||
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio |
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio |
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); |
Licensed under the Apache License, Version 2.0 (the "License"); |
||||||
you may not use this file except in compliance with the License. |
you may not use this file except in compliance with the License. |
||||||
You may obtain a copy of the License at |
You may obtain a copy of the License at |
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software |
Unless required by applicable law or agreed to in writing, software |
||||||
distributed under the License is distributed on an "AS IS" BASIS, |
distributed under the License is distributed on an "AS IS" BASIS, |
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
See the License for the specific language governing permissions and |
See the License for the specific language governing permissions and |
||||||
limitations under the License. |
limitations under the License. |
||||||
*/ |
*/ |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @file templates/halconf.h |
* @file templates/halconf.h |
||||||
* @brief HAL configuration header. |
* @brief HAL configuration header. |
||||||
* @details HAL configuration file, this file allows to enable or disable the |
* @details HAL configuration file, this file allows to enable or disable the |
||||||
* various device drivers from your application. You may also use |
* various device drivers from your application. You may also use |
||||||
* this file in order to override the device drivers default settings. |
* this file in order to override the device drivers default settings. |
||||||
* |
* |
||||||
* @addtogroup HAL_CONF |
* @addtogroup HAL_CONF |
||||||
* @{ |
* @{ |
||||||
*/ |
*/ |
||||||
|
|
||||||
#ifndef _HALCONF_H_ |
#ifndef _HALCONF_H_ |
||||||
#define _HALCONF_H_ |
#define _HALCONF_H_ |
||||||
|
|
||||||
#include "mcuconf.h" |
#include "mcuconf.h" |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the PAL subsystem. |
* @brief Enables the PAL subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_PAL TRUE |
#define HAL_USE_PAL TRUE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the ADC subsystem. |
* @brief Enables the ADC subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_ADC FALSE |
#define HAL_USE_ADC FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the CAN subsystem. |
* @brief Enables the CAN subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_CAN FALSE |
#define HAL_USE_CAN FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the DAC subsystem. |
* @brief Enables the DAC subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_DAC FALSE |
#define HAL_USE_DAC FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the EXT subsystem. |
* @brief Enables the EXT subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_EXT FALSE |
#define HAL_USE_EXT FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the GPT subsystem. |
* @brief Enables the GPT subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_GPT FALSE |
#define HAL_USE_GPT FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the I2C subsystem. |
* @brief Enables the I2C subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_I2C FALSE |
#define HAL_USE_I2C FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the I2S subsystem. |
* @brief Enables the I2S subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_I2S FALSE |
#define HAL_USE_I2S FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the ICU subsystem. |
* @brief Enables the ICU subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_ICU FALSE |
#define HAL_USE_ICU FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the MAC subsystem. |
* @brief Enables the MAC subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_MAC FALSE |
#define HAL_USE_MAC FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the MMC_SPI subsystem. |
* @brief Enables the MMC_SPI subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_MMC_SPI FALSE |
#define HAL_USE_MMC_SPI FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the PWM subsystem. |
* @brief Enables the PWM subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_PWM FALSE |
#define HAL_USE_PWM FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the RTC subsystem. |
* @brief Enables the RTC subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_RTC FALSE |
#define HAL_USE_RTC FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the SDC subsystem. |
* @brief Enables the SDC subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_SDC FALSE |
#define HAL_USE_SDC FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the SERIAL subsystem. |
* @brief Enables the SERIAL subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_SERIAL FALSE |
#define HAL_USE_SERIAL FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the SERIAL over USB subsystem. |
* @brief Enables the SERIAL over USB subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_SERIAL_USB TRUE |
#define HAL_USE_SERIAL_USB TRUE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the SPI subsystem. |
* @brief Enables the SPI subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_SPI FALSE |
#define HAL_USE_SPI FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the UART subsystem. |
* @brief Enables the UART subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_UART) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_UART FALSE |
#define HAL_USE_UART FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the USB subsystem. |
* @brief Enables the USB subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_USB) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_USB TRUE |
#define HAL_USE_USB TRUE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the WDG subsystem. |
* @brief Enables the WDG subsystem. |
||||||
*/ |
*/ |
||||||
#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) |
#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__) |
||||||
#define HAL_USE_WDG FALSE |
#define HAL_USE_WDG FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/*===========================================================================*/ |
/*===========================================================================*/ |
||||||
/* ADC driver related settings. */ |
/* ADC driver related settings. */ |
||||||
/*===========================================================================*/ |
/*===========================================================================*/ |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables synchronous APIs. |
* @brief Enables synchronous APIs. |
||||||
* @note Disabling this option saves both code and data space. |
* @note Disabling this option saves both code and data space. |
||||||
*/ |
*/ |
||||||
#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) |
#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__) |
||||||
#define ADC_USE_WAIT TRUE |
#define ADC_USE_WAIT TRUE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. |
* @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs. |
||||||
* @note Disabling this option saves both code and data space. |
* @note Disabling this option saves both code and data space. |
||||||
*/ |
*/ |
||||||
#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) |
#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) |
||||||
#define ADC_USE_MUTUAL_EXCLUSION TRUE |
#define ADC_USE_MUTUAL_EXCLUSION TRUE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/*===========================================================================*/ |
/*===========================================================================*/ |
||||||
/* CAN driver related settings. */ |
/* CAN driver related settings. */ |
||||||
/*===========================================================================*/ |
/*===========================================================================*/ |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Sleep mode related APIs inclusion switch. |
* @brief Sleep mode related APIs inclusion switch. |
||||||
*/ |
*/ |
||||||
#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) |
#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__) |
||||||
#define CAN_USE_SLEEP_MODE TRUE |
#define CAN_USE_SLEEP_MODE TRUE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/*===========================================================================*/ |
/*===========================================================================*/ |
||||||
/* I2C driver related settings. */ |
/* I2C driver related settings. */ |
||||||
/*===========================================================================*/ |
/*===========================================================================*/ |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the mutual exclusion APIs on the I2C bus. |
* @brief Enables the mutual exclusion APIs on the I2C bus. |
||||||
*/ |
*/ |
||||||
#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) |
#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) |
||||||
#define I2C_USE_MUTUAL_EXCLUSION TRUE |
#define I2C_USE_MUTUAL_EXCLUSION TRUE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/*===========================================================================*/ |
/*===========================================================================*/ |
||||||
/* MAC driver related settings. */ |
/* MAC driver related settings. */ |
||||||
/*===========================================================================*/ |
/*===========================================================================*/ |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables an event sources for incoming packets. |
* @brief Enables an event sources for incoming packets. |
||||||
*/ |
*/ |
||||||
#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) |
#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__) |
||||||
#define MAC_USE_ZERO_COPY FALSE |
#define MAC_USE_ZERO_COPY FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables an event sources for incoming packets. |
* @brief Enables an event sources for incoming packets. |
||||||
*/ |
*/ |
||||||
#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) |
#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__) |
||||||
#define MAC_USE_EVENTS TRUE |
#define MAC_USE_EVENTS TRUE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/*===========================================================================*/ |
/*===========================================================================*/ |
||||||
/* MMC_SPI driver related settings. */ |
/* MMC_SPI driver related settings. */ |
||||||
/*===========================================================================*/ |
/*===========================================================================*/ |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Delays insertions. |
* @brief Delays insertions. |
||||||
* @details If enabled this options inserts delays into the MMC waiting |
* @details If enabled this options inserts delays into the MMC waiting |
||||||
* routines releasing some extra CPU time for the threads with |
* routines releasing some extra CPU time for the threads with |
||||||
* lower priority, this may slow down the driver a bit however. |
* lower priority, this may slow down the driver a bit however. |
||||||
* This option is recommended also if the SPI driver does not |
* This option is recommended also if the SPI driver does not |
||||||
* use a DMA channel and heavily loads the CPU. |
* use a DMA channel and heavily loads the CPU. |
||||||
*/ |
*/ |
||||||
#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) |
#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__) |
||||||
#define MMC_NICE_WAITING TRUE |
#define MMC_NICE_WAITING TRUE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/*===========================================================================*/ |
/*===========================================================================*/ |
||||||
/* SDC driver related settings. */ |
/* SDC driver related settings. */ |
||||||
/*===========================================================================*/ |
/*===========================================================================*/ |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Number of initialization attempts before rejecting the card. |
* @brief Number of initialization attempts before rejecting the card. |
||||||
* @note Attempts are performed at 10mS intervals. |
* @note Attempts are performed at 10mS intervals. |
||||||
*/ |
*/ |
||||||
#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) |
#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__) |
||||||
#define SDC_INIT_RETRY 100 |
#define SDC_INIT_RETRY 100 |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Include support for MMC cards. |
* @brief Include support for MMC cards. |
||||||
* @note MMC support is not yet implemented so this option must be kept |
* @note MMC support is not yet implemented so this option must be kept |
||||||
* at @p FALSE. |
* at @p FALSE. |
||||||
*/ |
*/ |
||||||
#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) |
#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__) |
||||||
#define SDC_MMC_SUPPORT FALSE |
#define SDC_MMC_SUPPORT FALSE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Delays insertions. |
* @brief Delays insertions. |
||||||
* @details If enabled this options inserts delays into the MMC waiting |
* @details If enabled this options inserts delays into the MMC waiting |
||||||
* routines releasing some extra CPU time for the threads with |
* routines releasing some extra CPU time for the threads with |
||||||
* lower priority, this may slow down the driver a bit however. |
* lower priority, this may slow down the driver a bit however. |
||||||
*/ |
*/ |
||||||
#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) |
#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__) |
||||||
#define SDC_NICE_WAITING TRUE |
#define SDC_NICE_WAITING TRUE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/*===========================================================================*/ |
/*===========================================================================*/ |
||||||
/* SERIAL driver related settings. */ |
/* SERIAL driver related settings. */ |
||||||
/*===========================================================================*/ |
/*===========================================================================*/ |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Default bit rate. |
* @brief Default bit rate. |
||||||
* @details Configuration parameter, this is the baud rate selected for the |
* @details Configuration parameter, this is the baud rate selected for the |
||||||
* default configuration. |
* default configuration. |
||||||
*/ |
*/ |
||||||
#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) |
#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__) |
||||||
#define SERIAL_DEFAULT_BITRATE 38400 |
#define SERIAL_DEFAULT_BITRATE 38400 |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Serial buffers size. |
* @brief Serial buffers size. |
||||||
* @details Configuration parameter, you can change the depth of the queue |
* @details Configuration parameter, you can change the depth of the queue |
||||||
* buffers depending on the requirements of your application. |
* buffers depending on the requirements of your application. |
||||||
* @note The default is 64 bytes for both the transmission and receive |
* @note The default is 64 bytes for both the transmission and receive |
||||||
* buffers. |
* buffers. |
||||||
*/ |
*/ |
||||||
#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) |
#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) |
||||||
#define SERIAL_BUFFERS_SIZE 16 |
#define SERIAL_BUFFERS_SIZE 16 |
||||||
#endif |
#endif |
||||||
|
|
||||||
/*===========================================================================*/ |
/*===========================================================================*/ |
||||||
/* SERIAL_USB driver related setting. */ |
/* SERIAL_USB driver related setting. */ |
||||||
/*===========================================================================*/ |
/*===========================================================================*/ |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Serial over USB buffers size. |
* @brief Serial over USB buffers size. |
||||||
* @details Configuration parameter, the buffer size must be a multiple of |
* @details Configuration parameter, the buffer size must be a multiple of |
||||||
* the USB data endpoint maximum packet size. |
* the USB data endpoint maximum packet size. |
||||||
* @note The default is 64 bytes for both the transmission and receive |
* @note The default is 64 bytes for both the transmission and receive |
||||||
* buffers. |
* buffers. |
||||||
*/ |
*/ |
||||||
#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) |
#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) |
||||||
#define SERIAL_USB_BUFFERS_SIZE 256 |
#define SERIAL_USB_BUFFERS_SIZE 256 |
||||||
#endif |
#endif |
||||||
|
|
||||||
/*===========================================================================*/ |
/*===========================================================================*/ |
||||||
/* SPI driver related settings. */ |
/* SPI driver related settings. */ |
||||||
/*===========================================================================*/ |
/*===========================================================================*/ |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables synchronous APIs. |
* @brief Enables synchronous APIs. |
||||||
* @note Disabling this option saves both code and data space. |
* @note Disabling this option saves both code and data space. |
||||||
*/ |
*/ |
||||||
#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) |
#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__) |
||||||
#define SPI_USE_WAIT TRUE |
#define SPI_USE_WAIT TRUE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. |
* @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs. |
||||||
* @note Disabling this option saves both code and data space. |
* @note Disabling this option saves both code and data space. |
||||||
*/ |
*/ |
||||||
#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) |
#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__) |
||||||
#define SPI_USE_MUTUAL_EXCLUSION TRUE |
#define SPI_USE_MUTUAL_EXCLUSION TRUE |
||||||
#endif |
#endif |
||||||
|
|
||||||
/*===========================================================================*/ |
/*===========================================================================*/ |
||||||
/* USB driver related settings. */ |
/* USB driver related settings. */ |
||||||
/*===========================================================================*/ |
/*===========================================================================*/ |
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables synchronous APIs. |
* @brief Enables synchronous APIs. |
||||||
* @note Disabling this option saves both code and data space. |
* @note Disabling this option saves both code and data space. |
||||||
*/ |
*/ |
||||||
#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) |
#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__) |
||||||
#define USB_USE_WAIT TRUE |
#define USB_USE_WAIT TRUE |
||||||
#endif |
#endif |
||||||
|
|
||||||
#endif /* _HALCONF_H_ */ |
#endif /* _HALCONF_H_ */ |
||||||
|
|
||||||
/** @} */ |
/** @} */ |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue