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"
 | 
			
		||||
 | 
			
		||||
#ifdef SUBPROJECT_rev1
 | 
			
		||||
    #include "rev1/config.h"
 | 
			
		||||
#endif
 | 
			
		||||
// GCC include 'config.h" sequence in qmk_firmware/keyboards/helix/
 | 
			
		||||
//   -include keyboards/helix/config.h
 | 
			
		||||
//   -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
 | 
			
		||||
#define REV1_CONFIG_H
 | 
			
		||||
 | 
			
		||||
#include "../config.h"
 | 
			
		||||
 | 
			
		||||
/* USB Device descriptor parameter */
 | 
			
		||||
#define VENDOR_ID       0xFEED
 | 
			
		||||
#define PRODUCT_ID      0x3060
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,8 +21,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
#ifndef CONFIG_USER_H
 | 
			
		||||
#define CONFIG_USER_H
 | 
			
		||||
 | 
			
		||||
#include "../../config.h"
 | 
			
		||||
 | 
			
		||||
/* Use I2C or Serial */
 | 
			
		||||
 | 
			
		||||
#define USE_I2C
 | 
			
		||||
| 
						 | 
				
			
			@ -37,8 +35,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
 | 
			
		||||
#define SSD1306OLED
 | 
			
		||||
 | 
			
		||||
#define USE_SERIAL_PD2
 | 
			
		||||
 | 
			
		||||
#define PREVENT_STUCK_MODIFIERS
 | 
			
		||||
#define TAPPING_FORCE_HOLD
 | 
			
		||||
#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
 | 
			
		||||
#define CONFIG_USER_H
 | 
			
		||||
 | 
			
		||||
#include "../../config.h"
 | 
			
		||||
 | 
			
		||||
/* Use I2C or Serial, not both */
 | 
			
		||||
 | 
			
		||||
#define USE_SERIAL
 | 
			
		||||
| 
						 | 
				
			
			@ -34,4 +32,4 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
// #define _MASTER_RIGHT
 | 
			
		||||
// #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
 | 
			
		||||
#define REV2_CONFIG_H
 | 
			
		||||
 | 
			
		||||
#include "../config.h"
 | 
			
		||||
 | 
			
		||||
/* USB Device descriptor parameter */
 | 
			
		||||
#define VENDOR_ID       0xFEED
 | 
			
		||||
#define PRODUCT_ID      0x3060
 | 
			
		||||
| 
						 | 
				
			
			@ -37,7 +35,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
/* Use I2C or Serial */
 | 
			
		||||
#define USE_I2C
 | 
			
		||||
#define USE_SERIAL
 | 
			
		||||
#define USE_SERIAL_PD2
 | 
			
		||||
//#define USE_MATRIX_I2C
 | 
			
		||||
 | 
			
		||||
/* Select hand configuration */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,8 +21,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
#ifndef CONFIG_USER_H
 | 
			
		||||
#define CONFIG_USER_H
 | 
			
		||||
 | 
			
		||||
#include "../../config.h"
 | 
			
		||||
 | 
			
		||||
// place overrides here
 | 
			
		||||
 | 
			
		||||
#endif /* CONFIG_USER_H */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
#ifndef CONFIG_USER_H
 | 
			
		||||
#define CONFIG_USER_H
 | 
			
		||||
 | 
			
		||||
#include "../../config.h"
 | 
			
		||||
 | 
			
		||||
#undef TAPPING_FORCE_HOLD
 | 
			
		||||
#undef TAPPING_TERM
 | 
			
		||||
#define TAPPING_TERM 120
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,8 +21,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
#ifndef CONFIG_USER_H
 | 
			
		||||
#define CONFIG_USER_H
 | 
			
		||||
 | 
			
		||||
#include "../../config.h"
 | 
			
		||||
 | 
			
		||||
// place overrides here
 | 
			
		||||
 | 
			
		||||
#endif /* CONFIG_USER_H */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,8 +21,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
#ifndef CONFIG_USER_H
 | 
			
		||||
#define CONFIG_USER_H
 | 
			
		||||
 | 
			
		||||
#include "../../config.h"
 | 
			
		||||
 | 
			
		||||
/* Use I2C or Serial */
 | 
			
		||||
 | 
			
		||||
#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"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define USE_SERIAL_PD2
 | 
			
		||||
 | 
			
		||||
#define PREVENT_STUCK_MODIFIERS
 | 
			
		||||
#define TAPPING_FORCE_HOLD
 | 
			
		||||
#define TAPPING_TERM 100
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,8 +21,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
#ifndef CONFIG_USER_H
 | 
			
		||||
#define CONFIG_USER_H
 | 
			
		||||
 | 
			
		||||
#include "../../config.h"
 | 
			
		||||
 | 
			
		||||
#undef TAPPING_TERM
 | 
			
		||||
#define TAPPING_TERM 200
 | 
			
		||||
#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
 | 
			
		||||
#define CONFIG_USER_H
 | 
			
		||||
 | 
			
		||||
#include "../../config.h"
 | 
			
		||||
 | 
			
		||||
// place overrides here
 | 
			
		||||
 | 
			
		||||
#endif /* CONFIG_USER_H */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -30,7 +30,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		|||
#include "matrix.h"
 | 
			
		||||
#include "split_util.h"
 | 
			
		||||
#include "pro_micro.h"
 | 
			
		||||
#include "config.h"
 | 
			
		||||
 | 
			
		||||
#ifdef USE_MATRIX_I2C
 | 
			
		||||
#  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 "matrix.h"
 | 
			
		||||
#include "keyboard.h"
 | 
			
		||||
#include "config.h"
 | 
			
		||||
 | 
			
		||||
#ifdef USE_MATRIX_I2C
 | 
			
		||||
#  include "i2c.h"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -110,16 +110,18 @@ void serial_master_init(void) {
 | 
			
		|||
void serial_slave_init(void) {
 | 
			
		||||
  serial_input_with_pullup();
 | 
			
		||||
 | 
			
		||||
#ifndef USE_SERIAL_PD2
 | 
			
		||||
#if SERIAL_PIN_MASK == _BV(PD0)
 | 
			
		||||
  // Enable INT0
 | 
			
		||||
  EIMSK |= _BV(INT0);
 | 
			
		||||
  // Trigger on falling edge of INT0
 | 
			
		||||
  EICRA &= ~(_BV(ISC00) | _BV(ISC01));
 | 
			
		||||
#else
 | 
			
		||||
#elif SERIAL_PIN_MASK == _BV(PD2)
 | 
			
		||||
  // Enable INT2
 | 
			
		||||
  EIMSK |= _BV(INT2);
 | 
			
		||||
  // Trigger on falling edge of INT2
 | 
			
		||||
  EICRA &= ~(_BV(ISC20) | _BV(ISC21));
 | 
			
		||||
#else
 | 
			
		||||
 #error unknown SERIAL_PIN_MASK value
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,28 +1,19 @@
 | 
			
		|||
#ifndef MY_SERIAL_H
 | 
			
		||||
#define MY_SERIAL_H
 | 
			
		||||
#ifndef SOFT_SERIAL_H
 | 
			
		||||
#define SOFT_SERIAL_H
 | 
			
		||||
 | 
			
		||||
#include "config.h"
 | 
			
		||||
#include <stdbool.h>
 | 
			
		||||
 | 
			
		||||
/* TODO:  some defines for interrupt setup */
 | 
			
		||||
#define SERIAL_PIN_DDR DDRD
 | 
			
		||||
#define SERIAL_PIN_PORT PORTD
 | 
			
		||||
#define SERIAL_PIN_INPUT PIND
 | 
			
		||||
 | 
			
		||||
#ifndef USE_SERIAL_PD2
 | 
			
		||||
#define SERIAL_PIN_MASK _BV(PD0)
 | 
			
		||||
#define SERIAL_PIN_INTERRUPT INT0_vect
 | 
			
		||||
#else
 | 
			
		||||
#define SERIAL_PIN_MASK _BV(PD2)
 | 
			
		||||
#define SERIAL_PIN_INTERRUPT INT2_vect
 | 
			
		||||
#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
 | 
			
		||||
// ////////////////////////////////////////////
 | 
			
		||||
// Need Soft Serial defines in serial_config.h
 | 
			
		||||
// ////////////////////////////////////////////
 | 
			
		||||
// ex.
 | 
			
		||||
//  #define SERIAL_PIN_DDR DDRD
 | 
			
		||||
//  #define SERIAL_PIN_PORT PORTD
 | 
			
		||||
//  #define SERIAL_PIN_INPUT PIND
 | 
			
		||||
//  #define SERIAL_PIN_MASK _BV(PD?)   ?=0,2
 | 
			
		||||
//  #define SERIAL_PIN_INTERRUPT INT?_vect  ?=0,2
 | 
			
		||||
//  #define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2
 | 
			
		||||
//  #define SERIAL_MASTER_BUFFER_LENGTH MATRIX_ROWS/2
 | 
			
		||||
 | 
			
		||||
// Buffers for master - slave communication
 | 
			
		||||
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);
 | 
			
		||||
bool serial_slave_data_corrupt(void);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
#endif /* SOFT_SERIAL_H */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,7 +4,6 @@
 | 
			
		|||
#include <stdbool.h>
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include "pincontrol.h"
 | 
			
		||||
#include "config.h"
 | 
			
		||||
 | 
			
		||||
enum ssd1306_cmds {
 | 
			
		||||
  DisplayOff = 0xAE,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue