added ergodox
This commit is contained in:
parent
46e7fb2d3c
commit
35a81f5b8b
17 changed files with 1627 additions and 128 deletions
116
quantum/config_common.h
Normal file
116
quantum/config_common.h
Normal file
|
@ -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<<UDRE1))
|
||||
#define SERIAL_UART_INIT() do { \
|
||||
UBRR1L = (uint8_t) SERIAL_UART_UBRR; /* baud rate */ \
|
||||
UBRR1H = (uint8_t) (SERIAL_UART_UBRR>>8); /* baud rate */ \
|
||||
UCSR1B = (1<<TXEN1); /* TX: enable */ \
|
||||
UCSR1C = (0<<UPM11) | (0<<UPM10) | /* parity: none(00), even(01), odd(11) */ \
|
||||
(0<<UCSZ12) | (1<<UCSZ11) | (1<<UCSZ10); /* data-8bit(011) */ \
|
||||
sei(); \
|
||||
} while(0)
|
||||
#else
|
||||
# error "USART configuration is needed."
|
||||
#endif
|
||||
|
||||
|
||||
// I'm fairly sure these aren't needed, but oh well - Jack
|
||||
|
||||
/*
|
||||
* PS/2 Interrupt configuration
|
||||
*/
|
||||
#ifdef PS2_USE_INT
|
||||
/* uses INT1 for clock line(ATMega32U4) */
|
||||
#define PS2_CLOCK_PORT PORTD
|
||||
#define PS2_CLOCK_PIN PIND
|
||||
#define PS2_CLOCK_DDR DDRD
|
||||
#define PS2_CLOCK_BIT 1
|
||||
|
||||
#define PS2_DATA_PORT PORTD
|
||||
#define PS2_DATA_PIN PIND
|
||||
#define PS2_DATA_DDR DDRD
|
||||
#define PS2_DATA_BIT 0
|
||||
|
||||
#define PS2_INT_INIT() do { \
|
||||
EICRA |= ((1<<ISC11) | \
|
||||
(0<<ISC10)); \
|
||||
} while (0)
|
||||
#define PS2_INT_ON() do { \
|
||||
EIMSK |= (1<<INT1); \
|
||||
} while (0)
|
||||
#define PS2_INT_OFF() do { \
|
||||
EIMSK &= ~(1<<INT1); \
|
||||
} while (0)
|
||||
#define PS2_INT_VECT INT1_vect
|
||||
#endif
|
||||
|
||||
/*
|
||||
* PS/2 Busywait configuration
|
||||
*/
|
||||
#ifdef PS2_USE_BUSYWAIT
|
||||
#define PS2_CLOCK_PORT PORTD
|
||||
#define PS2_CLOCK_PIN PIND
|
||||
#define PS2_CLOCK_DDR DDRD
|
||||
#define PS2_CLOCK_BIT 1
|
||||
|
||||
#define PS2_DATA_PORT PORTD
|
||||
#define PS2_DATA_PIN PIND
|
||||
#define PS2_DATA_DDR DDRD
|
||||
#define PS2_DATA_BIT 0
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
@ -37,15 +37,18 @@ action_t action_for_key(uint8_t layer, keypos_t key)
|
|||
// Has a modifier
|
||||
action_t action;
|
||||
// Split it up
|
||||
action.code = ACTION_MODS_KEY(keycode >> 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) {
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue