|
|
|
#ifndef PICO_H
|
|
|
|
#define PICO_CONFIG_H
|
|
|
|
|
|
|
|
#include "../helix.h"
|
|
|
|
|
|
|
|
#include "quantum.h"
|
|
|
|
|
|
|
|
#ifdef RGBLIGHT_ENABLE
|
|
|
|
//rgb led driver
|
|
|
|
#include "ws2812.h"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef USE_I2C
|
|
|
|
#include <stddef.h>
|
|
|
|
#ifdef __AVR__
|
|
|
|
#include <avr/io.h>
|
|
|
|
#include <avr/interrupt.h>
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef FLIP_HALF
|
|
|
|
// Standard Keymap
|
|
|
|
// (TRRS jack on the left half is to the right, TRRS jack on the right half is to the left)
|
|
|
|
#define LAYOUT( \
|
|
|
|
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
|
|
|
|
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
|
|
|
|
L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
|
|
|
|
L30, L31, L32, L33, L34, L35, L36, R36, R30, R31, R32, R33, R34, R35 \
|
|
|
|
) \
|
|
|
|
{ \
|
|
|
|
{ L00, L01, L02, L03, L04, L05, KC_NO }, \
|
|
|
|
{ L10, L11, L12, L13, L14, L15, KC_NO }, \
|
|
|
|
{ L20, L21, L22, L23, L24, L25, KC_NO }, \
|
|
|
|
{ L30, L31, L32, L33, L34, L35, L36 }, \
|
|
|
|
{ R05, R04, R03, R02, R01, R00, KC_NO }, \
|
|
|
|
{ R15, R14, R13, R12, R11, R10, KC_NO }, \
|
|
|
|
{ R25, R24, R23, R22, R21, R20, KC_NO }, \
|
|
|
|
{ R35, R34, R33, R32, R31, R30, R36 }, \
|
|
|
|
}
|
|
|
|
#else
|
|
|
|
// Keymap with right side flipped
|
|
|
|
// (TRRS jack on both halves are to the right)
|
|
|
|
#define LAYOUT( \
|
|
|
|
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
|
|
|
|
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
|
|
|
|
L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
|
|
|
|
L30, L31, L32, L33, L34, L35, L36, R36, R30, R31, R32, R33, R34, R35 \
|
|
|
|
) \
|
|
|
|
{ \
|
|
|
|
{ L00, L01, L02, L03, L04, L05, KC_NO }, \
|
|
|
|
{ L10, L11, L12, L13, L14, L15, KC_NO }, \
|
|
|
|
{ L20, L21, L22, L23, L24, L25, KC_NO }, \
|
|
|
|
{ L30, L31, L32, L33, L34, L35, L36 }, \
|
|
|
|
{ KC_NO, R00, R01, R02, R03, R04, R05 }, \
|
|
|
|
{ KC_NO, R10, R11, R12, R13, R14, R15 }, \
|
|
|
|
{ KC_NO, R20, R21, R22, R23, R24, R25 }, \
|
|
|
|
{ R36, R30, R31, R32, R33, R34, R35 }, \
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
Keyboard: Pr/helixpico add layout kc (#4686)
* add some comment about Helix customize and auto-setup RGBLIGHT_LIMIT_VAL
* add define USB_MAX_POWER_CONSUMPTION
* Helix keyboard OLED, RGBLIGHT enable/disable control integrate into rules.mk
rules.mk: add 4 Variables for compile control.
# Helix keyboard customize
# you can edit follows 4 Variables
# jp: 以下の4つの変数を必要に応じて編集します。
OLED_ENABLE = no # OLED_ENABLE
LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.)
LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
LED_ANIMATIONS = yes # LED animations
config.h: auto set RGBLED_NUM by HELIX_ROWS and rules.mk's define
* HELIX_ROWS define move from config.h to rules.mk
* add readme.md
* rename readme.md to readme_jp.md
* add readme.md and modify readme_jp.md
* change helix/ssd1306.c for select glcdfont.c position
* add variable LOCAL_GLCDFONT into each keymaps rules.mk
* Add iPhone/iPad LED support to Helix default keymap
* renumber _ADJUST for shrink program size
* Fix Helix i2c wrong bit rate
* add helix serial debug code
* serial debug macro move from config.h to serial.h
* helix serial.c debugging...
* refine debug macros
* add some comments
* add SELECT_SERIAL_SPEED
* add comments
* debugging sync_send/sync_recv
* add very high speed
* fix sync_send/sync_recv
* fix com. start and switch send/recv
* debug mode off
* remove debug codes
* temporary change, compiling C, C++ and ASM without -g
* helix config.h refine
* Revert "temporary change, compiling C, C++ and ASM without -g"
This reverts commit e9730cbbfd94fbcf792d992e3a1a65ad279b24d6.
* add change_reciver2sender()/change_sender2reciver()
This is a change to improve readability.
* txled, rxled off in matrix_init()
* add serial_send_packet() / serial_recive_packet()
This is a change to reduce object size.
* add serial_low() at ISR() top
* add __attribute__((always_inline)) to some functions
* modify serial_send_packet()/serial_recive_packet()
A little, object size reduction.
A little, speedup.
* add debug code to helix/serial.c
* Adjust sampling timing of serial signal being received
* add split_scomm.c/split_scomm.h and change serial.c/serial.h
serial.c was divided into 2 layers, split_scom.c and serial.c.
The upper layer split_scomm.c is called from matrix.c.
The lower layer serial.c accesses the hardware.
* add split_scomm.c/split_scomm.h into helix/rev1
* reduce object size helix/rev2/matrix.c
* remove checksum check, add parity check
* force occur parity error for test
* parity test ok. remove test code
* change some comment & add skip code when buffer_size == 0
* serial.c: multiple types of transaction support
Add 4 bits transaction-type field at packet top.
Select Transaction Descriptor Table entry by transaction-type.
* helix serial master-slave transaction optimize
Using multi-type transaction feature of serial.c, communication contents between master slaves were optimized.
* add debug code for retry
* add comment into each config.h
* fix ISR status drop
* add a debug macro 'debug_retry_chg()'
* reduce led_test size
* remove debug code from helix/serial.c and etc.
* helix:five_rows change TAPPING_TERM value 140
* Improved compatibility with let's split of serial.c. Finish helix/serial.c improvement.
- The difference with the original let's split's serial.c
- It's high-speed about 4 times.
- Stable bi-directional data transfer. (Helix need master to slave transfer)
- serial.h was divided 2 files, serial_config.h and sereial.h
- With multiple types of transaction support, communication contents can be optimized. (NEW flexible API)
- USE OLD Simple APIs (compatible with let's split serial.c)
- files :
- serial_config.h -- hardware configuration (need include by config.h)
- serial.c/serial.h -- serial communication
- USE NEW flexible APIs. (Support multi-type transaction function.)
serial.c was divided into 2 layers, split_scom.c and serial.c.
The upper layer split_scomm.c is called from matrix.c.
The lower layer serial.c accesses the hardware.
- files
- split_scomm.c -- communication buffer is defined in here. call by matrix.c.
- split_scomm.h -- buffer size is defined in here. include by matrix.c, split_util.c
- serial_config.h -- hardware configuration (need include by config.h)
To use the NEW API, specify #define SERIAL_USE_MULTI_TRANSACTION
- serial.c/serial.h -- serial communication lower layer
- NEW APIs for serial.c / serial.h (The lower layer)
// Soft Serial Transaction Descriptor
typedef struct _SSTD_t {
uint8_t *status;
uint8_t initiator2target_buffer_size;
uint8_t *initiator2target_buffer;
uint8_t target2initiator_buffer_size;
uint8_t *target2initiator_buffer;
} SSTD_t;
// initiator is transaction start side
void soft_serial_initiator_init(SSTD_t *sstd_table);
// target is interrupt accept side
void soft_serial_target_init(SSTD_t *sstd_table);
int soft_serial_transaction(int sstd_index);
int soft_serial_get_and_clean_target_status(int sstd_index);
- NEW APIs for split_scomm.c / split_scomm.h (The upper layer)
move from old serial.c the following buffer and functions
serial_slave_buffer[]
serial_master_buffer[]
void serial_master_init(void)
void serial_slave_init(void)
int serial_update_buffers(void)
define SERIAL_xxxxx_BUFFER_LENGTH move from serial_config.h to split_scomm.h
* fix comment typo
* Fix the value of helix:five_rows variable HELIX_ROWS to 5.
* led_test rules.mk some change
* Separate common parts of helix/rev2/keymaps/*/rules.mk into helix/rev2/keymaps_common.mk
* helix/rev2/keymaps/edvorakjp/rules.mk use helix/rev2/keymaps_common.mk
* Separate common parts of helix/pico/keymaps/*/rules.mk into helix/pico/keymaps_common.mk
* Helix each keymap's using rgblight mode symbol instead magic number
No change in build result.
* Helix pico keymaps: make rgblight modes selectable.
No change in build result.
* Helix rev2 keymaps: make rgblight modes selectable.
No change in build result.
* fixed Helix froggy/keymap.c: invalid rgblight mode value 0 to 1 (=RGBLIGHT_MODE_STATIC_LIGHT)
* Deselect RGB_TEST and ALTERNATING in Helix rev2,pico keymaps config.h.
* Merge branch 'master' of https://github.com/qmk/qmk_firmware
* revert 955dcbc
* delete keymaps_common.mk
* add LAYOUT_kc() to keyboards/helix/pico/pico.h
6 years ago
|
|
|
#define LAYOUT_kc( \
|
|
|
|
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
|
|
|
|
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
|
|
|
|
L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
|
|
|
|
L30, L31, L32, L33, L34, L35, L36, R36, R30, R31, R32, R33, R34, R35 \
|
|
|
|
) \
|
|
|
|
LAYOUT( \
|
|
|
|
KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, \
|
|
|
|
KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, \
|
|
|
|
KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, \
|
|
|
|
KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##L36, KC_##R36, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35 \
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|