parent
e3299db9e3
commit
f30d6dd785
19 changed files with 85 additions and 58 deletions
|
@ -21,8 +21,22 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
#include "config_common.h"
|
#include "config_common.h"
|
||||||
|
|
||||||
#ifdef SUBPROJECT_rev1
|
// GCC include 'config.h" sequence in qmk_firmware/keyboards/helix/
|
||||||
#include "rev1/config.h"
|
// -include keyboards/helix/config.h
|
||||||
#endif
|
// -include keyboards/helix/rev?/config.h
|
||||||
|
// -include keyboards/helix/rev?/keymaps/MAPNAME/config.h
|
||||||
|
// XXXX.c
|
||||||
|
|
||||||
#endif
|
#include <serial_config.h>
|
||||||
|
|
||||||
|
// GCC include search path in qmk_firmare/keyboards/helix/
|
||||||
|
// #include "..." search starts here:
|
||||||
|
// #include <...> search starts here:
|
||||||
|
// keyboards/helix/rev?/keymaps/MAPNAME
|
||||||
|
// keyboards/helix
|
||||||
|
// keyboards/helix/rev?
|
||||||
|
// .
|
||||||
|
// ./tmk_core
|
||||||
|
// ......
|
||||||
|
|
||||||
|
#endif /* CONFIG_H */
|
||||||
|
|
|
@ -19,8 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#ifndef REV1_CONFIG_H
|
#ifndef REV1_CONFIG_H
|
||||||
#define REV1_CONFIG_H
|
#define REV1_CONFIG_H
|
||||||
|
|
||||||
#include "../config.h"
|
|
||||||
|
|
||||||
/* USB Device descriptor parameter */
|
/* USB Device descriptor parameter */
|
||||||
#define VENDOR_ID 0xFEED
|
#define VENDOR_ID 0xFEED
|
||||||
#define PRODUCT_ID 0x3060
|
#define PRODUCT_ID 0x3060
|
||||||
|
|
|
@ -21,8 +21,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#ifndef CONFIG_USER_H
|
#ifndef CONFIG_USER_H
|
||||||
#define CONFIG_USER_H
|
#define CONFIG_USER_H
|
||||||
|
|
||||||
#include "../../config.h"
|
|
||||||
|
|
||||||
/* Use I2C or Serial */
|
/* Use I2C or Serial */
|
||||||
|
|
||||||
#define USE_I2C
|
#define USE_I2C
|
||||||
|
@ -37,8 +35,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
#define SSD1306OLED
|
#define SSD1306OLED
|
||||||
|
|
||||||
#define USE_SERIAL_PD2
|
|
||||||
|
|
||||||
#define PREVENT_STUCK_MODIFIERS
|
#define PREVENT_STUCK_MODIFIERS
|
||||||
#define TAPPING_FORCE_HOLD
|
#define TAPPING_FORCE_HOLD
|
||||||
#define TAPPING_TERM 100
|
#define TAPPING_TERM 100
|
||||||
|
|
16
keyboards/helix/rev1/keymaps/OLED_sample/serial_config.h
Normal file
16
keyboards/helix/rev1/keymaps/OLED_sample/serial_config.h
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
#ifndef SOFT_SERIAL_CONFIG_H
|
||||||
|
#define SOFT_SERIAL_CONFIG_H
|
||||||
|
|
||||||
|
/* Soft Serial defines */
|
||||||
|
#define SERIAL_PIN_DDR DDRD
|
||||||
|
#define SERIAL_PIN_PORT PORTD
|
||||||
|
#define SERIAL_PIN_INPUT PIND
|
||||||
|
#define SERIAL_PIN_MASK _BV(PD2)
|
||||||
|
#define SERIAL_PIN_INTERRUPT INT2_vect
|
||||||
|
|
||||||
|
#define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2
|
||||||
|
#define SERIAL_MASTER_BUFFER_LENGTH 1
|
||||||
|
|
||||||
|
//// #error rev1/keymaps/OLED_sample serial config
|
||||||
|
|
||||||
|
#endif /* SOFT_SERIAL_CONFIG_H */
|
|
@ -21,8 +21,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#ifndef CONFIG_USER_H
|
#ifndef CONFIG_USER_H
|
||||||
#define CONFIG_USER_H
|
#define CONFIG_USER_H
|
||||||
|
|
||||||
#include "../../config.h"
|
|
||||||
|
|
||||||
/* Use I2C or Serial, not both */
|
/* Use I2C or Serial, not both */
|
||||||
|
|
||||||
#define USE_SERIAL
|
#define USE_SERIAL
|
||||||
|
@ -34,4 +32,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
// #define _MASTER_RIGHT
|
// #define _MASTER_RIGHT
|
||||||
// #define EE_HANDS
|
// #define EE_HANDS
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
16
keyboards/helix/rev1/serial_config.h
Normal file
16
keyboards/helix/rev1/serial_config.h
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
#ifndef SOFT_SERIAL_CONFIG_H
|
||||||
|
#define SOFT_SERIAL_CONFIG_H
|
||||||
|
|
||||||
|
/* Soft Serial defines */
|
||||||
|
#define SERIAL_PIN_DDR DDRD
|
||||||
|
#define SERIAL_PIN_PORT PORTD
|
||||||
|
#define SERIAL_PIN_INPUT PIND
|
||||||
|
#define SERIAL_PIN_MASK _BV(PD0)
|
||||||
|
#define SERIAL_PIN_INTERRUPT INT0_vect
|
||||||
|
|
||||||
|
#define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2
|
||||||
|
#define SERIAL_MASTER_BUFFER_LENGTH 1
|
||||||
|
|
||||||
|
/// #error rev1 serial config
|
||||||
|
|
||||||
|
#endif /* SOFT_SERIAL_CONFIG_H */
|
|
@ -19,8 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#ifndef REV2_CONFIG_H
|
#ifndef REV2_CONFIG_H
|
||||||
#define REV2_CONFIG_H
|
#define REV2_CONFIG_H
|
||||||
|
|
||||||
#include "../config.h"
|
|
||||||
|
|
||||||
/* USB Device descriptor parameter */
|
/* USB Device descriptor parameter */
|
||||||
#define VENDOR_ID 0xFEED
|
#define VENDOR_ID 0xFEED
|
||||||
#define PRODUCT_ID 0x3060
|
#define PRODUCT_ID 0x3060
|
||||||
|
@ -37,7 +35,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
/* Use I2C or Serial */
|
/* Use I2C or Serial */
|
||||||
#define USE_I2C
|
#define USE_I2C
|
||||||
#define USE_SERIAL
|
#define USE_SERIAL
|
||||||
#define USE_SERIAL_PD2
|
|
||||||
//#define USE_MATRIX_I2C
|
//#define USE_MATRIX_I2C
|
||||||
|
|
||||||
/* Select hand configuration */
|
/* Select hand configuration */
|
||||||
|
|
|
@ -21,8 +21,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#ifndef CONFIG_USER_H
|
#ifndef CONFIG_USER_H
|
||||||
#define CONFIG_USER_H
|
#define CONFIG_USER_H
|
||||||
|
|
||||||
#include "../../config.h"
|
|
||||||
|
|
||||||
// place overrides here
|
// place overrides here
|
||||||
|
|
||||||
#endif /* CONFIG_USER_H */
|
#endif /* CONFIG_USER_H */
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
#ifndef CONFIG_USER_H
|
#ifndef CONFIG_USER_H
|
||||||
#define CONFIG_USER_H
|
#define CONFIG_USER_H
|
||||||
|
|
||||||
#include "../../config.h"
|
|
||||||
|
|
||||||
#undef TAPPING_FORCE_HOLD
|
#undef TAPPING_FORCE_HOLD
|
||||||
#undef TAPPING_TERM
|
#undef TAPPING_TERM
|
||||||
#define TAPPING_TERM 120
|
#define TAPPING_TERM 120
|
||||||
|
|
|
@ -21,8 +21,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#ifndef CONFIG_USER_H
|
#ifndef CONFIG_USER_H
|
||||||
#define CONFIG_USER_H
|
#define CONFIG_USER_H
|
||||||
|
|
||||||
#include "../../config.h"
|
|
||||||
|
|
||||||
// place overrides here
|
// place overrides here
|
||||||
|
|
||||||
#endif /* CONFIG_USER_H */
|
#endif /* CONFIG_USER_H */
|
||||||
|
|
|
@ -21,8 +21,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#ifndef CONFIG_USER_H
|
#ifndef CONFIG_USER_H
|
||||||
#define CONFIG_USER_H
|
#define CONFIG_USER_H
|
||||||
|
|
||||||
#include "../../config.h"
|
|
||||||
|
|
||||||
/* Use I2C or Serial */
|
/* Use I2C or Serial */
|
||||||
|
|
||||||
#define USE_I2C
|
#define USE_I2C
|
||||||
|
@ -59,8 +57,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#error "expected HELIX_ROWS 4 or 5"
|
#error "expected HELIX_ROWS 4 or 5"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define USE_SERIAL_PD2
|
|
||||||
|
|
||||||
#define PREVENT_STUCK_MODIFIERS
|
#define PREVENT_STUCK_MODIFIERS
|
||||||
#define TAPPING_FORCE_HOLD
|
#define TAPPING_FORCE_HOLD
|
||||||
#define TAPPING_TERM 100
|
#define TAPPING_TERM 100
|
||||||
|
|
|
@ -21,8 +21,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#ifndef CONFIG_USER_H
|
#ifndef CONFIG_USER_H
|
||||||
#define CONFIG_USER_H
|
#define CONFIG_USER_H
|
||||||
|
|
||||||
#include "../../config.h"
|
|
||||||
|
|
||||||
#undef TAPPING_TERM
|
#undef TAPPING_TERM
|
||||||
#define TAPPING_TERM 200
|
#define TAPPING_TERM 200
|
||||||
#define ONESHOT_TAP_TOGGLE 5 /* Tapping this number of times holds the key until tapped this number of times again. */
|
#define ONESHOT_TAP_TOGGLE 5 /* Tapping this number of times holds the key until tapped this number of times again. */
|
||||||
|
|
|
@ -21,8 +21,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#ifndef CONFIG_USER_H
|
#ifndef CONFIG_USER_H
|
||||||
#define CONFIG_USER_H
|
#define CONFIG_USER_H
|
||||||
|
|
||||||
#include "../../config.h"
|
|
||||||
|
|
||||||
// place overrides here
|
// place overrides here
|
||||||
|
|
||||||
#endif /* CONFIG_USER_H */
|
#endif /* CONFIG_USER_H */
|
||||||
|
|
|
@ -30,7 +30,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#include "matrix.h"
|
#include "matrix.h"
|
||||||
#include "split_util.h"
|
#include "split_util.h"
|
||||||
#include "pro_micro.h"
|
#include "pro_micro.h"
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
#ifdef USE_MATRIX_I2C
|
#ifdef USE_MATRIX_I2C
|
||||||
# include "i2c.h"
|
# include "i2c.h"
|
||||||
|
|
16
keyboards/helix/rev2/serial_config.h
Normal file
16
keyboards/helix/rev2/serial_config.h
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
#ifndef SOFT_SERIAL_CONFIG_H
|
||||||
|
#define SOFT_SERIAL_CONFIG_H
|
||||||
|
|
||||||
|
/* Soft Serial defines */
|
||||||
|
#define SERIAL_PIN_DDR DDRD
|
||||||
|
#define SERIAL_PIN_PORT PORTD
|
||||||
|
#define SERIAL_PIN_INPUT PIND
|
||||||
|
#define SERIAL_PIN_MASK _BV(PD2)
|
||||||
|
#define SERIAL_PIN_INTERRUPT INT2_vect
|
||||||
|
|
||||||
|
#define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2
|
||||||
|
#define SERIAL_MASTER_BUFFER_LENGTH MATRIX_ROWS/2
|
||||||
|
|
||||||
|
//// #error rev2 serial config
|
||||||
|
|
||||||
|
#endif /* SOFT_SERIAL_CONFIG_H */
|
|
@ -7,7 +7,6 @@
|
||||||
#include "split_util.h"
|
#include "split_util.h"
|
||||||
#include "matrix.h"
|
#include "matrix.h"
|
||||||
#include "keyboard.h"
|
#include "keyboard.h"
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
#ifdef USE_MATRIX_I2C
|
#ifdef USE_MATRIX_I2C
|
||||||
# include "i2c.h"
|
# include "i2c.h"
|
||||||
|
|
|
@ -110,16 +110,18 @@ void serial_master_init(void) {
|
||||||
void serial_slave_init(void) {
|
void serial_slave_init(void) {
|
||||||
serial_input_with_pullup();
|
serial_input_with_pullup();
|
||||||
|
|
||||||
#ifndef USE_SERIAL_PD2
|
#if SERIAL_PIN_MASK == _BV(PD0)
|
||||||
// Enable INT0
|
// Enable INT0
|
||||||
EIMSK |= _BV(INT0);
|
EIMSK |= _BV(INT0);
|
||||||
// Trigger on falling edge of INT0
|
// Trigger on falling edge of INT0
|
||||||
EICRA &= ~(_BV(ISC00) | _BV(ISC01));
|
EICRA &= ~(_BV(ISC00) | _BV(ISC01));
|
||||||
#else
|
#elif SERIAL_PIN_MASK == _BV(PD2)
|
||||||
// Enable INT2
|
// Enable INT2
|
||||||
EIMSK |= _BV(INT2);
|
EIMSK |= _BV(INT2);
|
||||||
// Trigger on falling edge of INT2
|
// Trigger on falling edge of INT2
|
||||||
EICRA &= ~(_BV(ISC20) | _BV(ISC21));
|
EICRA &= ~(_BV(ISC20) | _BV(ISC21));
|
||||||
|
#else
|
||||||
|
#error unknown SERIAL_PIN_MASK value
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,28 +1,19 @@
|
||||||
#ifndef MY_SERIAL_H
|
#ifndef SOFT_SERIAL_H
|
||||||
#define MY_SERIAL_H
|
#define SOFT_SERIAL_H
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
|
||||||
/* TODO: some defines for interrupt setup */
|
// ////////////////////////////////////////////
|
||||||
#define SERIAL_PIN_DDR DDRD
|
// Need Soft Serial defines in serial_config.h
|
||||||
#define SERIAL_PIN_PORT PORTD
|
// ////////////////////////////////////////////
|
||||||
#define SERIAL_PIN_INPUT PIND
|
// ex.
|
||||||
|
// #define SERIAL_PIN_DDR DDRD
|
||||||
#ifndef USE_SERIAL_PD2
|
// #define SERIAL_PIN_PORT PORTD
|
||||||
#define SERIAL_PIN_MASK _BV(PD0)
|
// #define SERIAL_PIN_INPUT PIND
|
||||||
#define SERIAL_PIN_INTERRUPT INT0_vect
|
// #define SERIAL_PIN_MASK _BV(PD?) ?=0,2
|
||||||
#else
|
// #define SERIAL_PIN_INTERRUPT INT?_vect ?=0,2
|
||||||
#define SERIAL_PIN_MASK _BV(PD2)
|
// #define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2
|
||||||
#define SERIAL_PIN_INTERRUPT INT2_vect
|
// #define SERIAL_MASTER_BUFFER_LENGTH MATRIX_ROWS/2
|
||||||
#endif
|
|
||||||
|
|
||||||
#define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2
|
|
||||||
#ifdef KEYBOARD_helix_rev1
|
|
||||||
#define SERIAL_MASTER_BUFFER_LENGTH 1
|
|
||||||
#else
|
|
||||||
#define SERIAL_MASTER_BUFFER_LENGTH MATRIX_ROWS/2
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Buffers for master - slave communication
|
// Buffers for master - slave communication
|
||||||
extern volatile uint8_t serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH];
|
extern volatile uint8_t serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH];
|
||||||
|
@ -33,4 +24,4 @@ void serial_slave_init(void);
|
||||||
int serial_update_buffers(void);
|
int serial_update_buffers(void);
|
||||||
bool serial_slave_data_corrupt(void);
|
bool serial_slave_data_corrupt(void);
|
||||||
|
|
||||||
#endif
|
#endif /* SOFT_SERIAL_H */
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "pincontrol.h"
|
#include "pincontrol.h"
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
enum ssd1306_cmds {
|
enum ssd1306_cmds {
|
||||||
DisplayOff = 0xAE,
|
DisplayOff = 0xAE,
|
||||||
|
|
Loading…
Reference in a new issue