From 35a81f5b8b081e1607a7c04489b01f551c3213cc Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 26 Oct 2015 16:32:37 -0400 Subject: added ergodox --- quantum/config_common.h | 116 ++++++++++++++++++++++++++++++++++++++++++++++++ quantum/keymap_common.c | 19 ++++++-- quantum/matrix.c | 10 +++++ 3 files changed, 141 insertions(+), 4 deletions(-) create mode 100644 quantum/config_common.h (limited to 'quantum') diff --git a/quantum/config_common.h b/quantum/config_common.h new file mode 100644 index 0000000000..da53fce89b --- /dev/null +++ b/quantum/config_common.h @@ -0,0 +1,116 @@ +#ifndef CONFIG_DEFINITIONS_H +#define CONFIG_DEFINITIONS_H + +#define B0 0x20 +#define B1 0x21 +#define B2 0x22 +#define B3 0x23 +#define B4 0x24 +#define B5 0x25 +#define B6 0x26 +#define B7 0x27 +#define C0 0x30 +#define C1 0x31 +#define C2 0x32 +#define C3 0x33 +#define C4 0x34 +#define C5 0x35 +#define C6 0x36 +#define C7 0x37 +#define D0 0x40 +#define D1 0x41 +#define D2 0x42 +#define D3 0x43 +#define D4 0x44 +#define D5 0x45 +#define D6 0x46 +#define D7 0x47 +#define E0 0x50 +#define E1 0x51 +#define E2 0x52 +#define E3 0x53 +#define E4 0x54 +#define E5 0x55 +#define E6 0x56 +#define E7 0x57 +#define F0 0x60 +#define F1 0x61 +#define F2 0x62 +#define F3 0x63 +#define F4 0x64 +#define F5 0x65 +#define F6 0x66 +#define F7 0x67 + +#define COL2ROW 0x0 +#define ROW2COL 0x1 + +#ifdef BLUETOOTH_ENABLE +#ifdef __AVR_ATmega32U4__ + #define SERIAL_UART_BAUD 9600 + #define SERIAL_UART_DATA UDR1 + #define SERIAL_UART_UBRR ((F_CPU/(16UL*SERIAL_UART_BAUD))-1) + #define SERIAL_UART_RXD_VECT USART1_RX_vect + #define SERIAL_UART_TXD_READY (UCSR1A&(1<>8); /* baud rate */ \ + UCSR1B = (1<> 8, keycode & 0xFF); + action.code = ACTION_MODS_KEY(keycode >> 8, keycode & 0xFF); // adds modifier to key return action; } else if (keycode >= 0x2000 && keycode < 0x3000) { - // Is a shortcut for function layer, pull last 12bits + // Is a shortcut for function layer, pull last 12bits + // This means we have 4,096 FN macros at our disposal return keymap_func_to_action(keycode & 0xFFF); } else if (keycode >= 0x3000 && keycode < 0x4000) { + // When the code starts with 3, it's an action macro. action_t action; action.code = ACTION_MACRO(keycode & 0xFF); return action; +#ifdef BACKLIGHT_ENABLE } else if (keycode >= BL_0 & keycode <= BL_15) { action_t action; action.code = ACTION_BACKLIGHT_LEVEL(keycode & 0x000F); @@ -66,10 +69,12 @@ action_t action_for_key(uint8_t layer, keypos_t key) action_t action; action.code = ACTION_BACKLIGHT_STEP(); return action; - } else if (keycode == RESET) { +#endif + } else if (keycode == RESET) { // RESET is 0x5000, which is why this is here bootloader_jump(); return; - } else if (keycode == DEBUG) { + } else if (keycode == DEBUG) { // DEBUG is 0x5001 + // TODO: Does this actually work? print("\nDEBUG: enabled.\n"); debug_enable = true; return; @@ -79,15 +84,21 @@ action_t action_for_key(uint8_t layer, keypos_t key) action_t action; action.code = ACTION_LAYER_SET(layer, when); return action; +#ifdef MIDI_ENABLE } else if (keycode >= 0x6000 && keycode < 0x7000) { action_t action; action.code = ACTION_FUNCTION_OPT(keycode & 0xFF, (keycode & 0x0F00) >> 8); return action; +#endif +#ifdef UNICODE_ENABLE } else if (keycode >= 0x8000) { action_t action; uint16_t unicode = keycode & ~(0x8000); action.code = ACTION_FUNCTION_OPT(unicode & 0xFF, (unicode & 0xFF00) >> 8); return action; +#endif + } else { + } switch (keycode) { diff --git a/quantum/matrix.c b/quantum/matrix.c index 97642a4a4e..95bf4c0973 100644 --- a/quantum/matrix.c +++ b/quantum/matrix.c @@ -47,6 +47,16 @@ static void init_cols(void); static void unselect_rows(void); static void select_row(uint8_t row); +__attribute__ ((weak)) +void * matrix_init_kb(void) { + +}; + +__attribute__ ((weak)) +void * matrix_scan_kb(void) { + +}; + inline uint8_t matrix_rows(void) { -- cgit v1.2.3