mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-04-01 21:39:52 +00:00
Merge remote-tracking branch 'origin/develop' into xap
This commit is contained in:
commit
f329a218ac
@ -1,6 +1,6 @@
|
||||
# HD44780 LCD Driver
|
||||
# HD44780 LCD Driver :id=hd44780-lcd-driver
|
||||
|
||||
## Supported Hardware
|
||||
## Supported Hardware :id=supported-hardware
|
||||
|
||||
LCD modules using [HD44780U](https://www.sparkfun.com/datasheets/LCD/HD44780.pdf) IC or equivalent, communicating in 4-bit mode.
|
||||
|
||||
@ -11,7 +11,7 @@ LCD modules using [HD44780U](https://www.sparkfun.com/datasheets/LCD/HD44780.pdf
|
||||
|
||||
To run these modules at 3.3V, an additional MAX660 voltage converter IC must be soldered on, along with two 10µF capacitors. See [this page](https://www.codrey.com/electronic-circuits/hack-your-16x2-lcd/) for more details.
|
||||
|
||||
## Usage
|
||||
## Usage :id=usage
|
||||
|
||||
Add the following to your `rules.mk`:
|
||||
|
||||
@ -19,7 +19,7 @@ Add the following to your `rules.mk`:
|
||||
HD44780_ENABLE = yes
|
||||
```
|
||||
|
||||
## Basic Configuration
|
||||
## Basic Configuration :id=basic-configuration
|
||||
|
||||
Add the following to your `config.h`:
|
||||
|
||||
@ -33,9 +33,9 @@ Add the following to your `config.h`:
|
||||
|`HD44780_DISPLAY_LINES`|`2` |The number of visible lines on the display |
|
||||
|`HD44780_WRAP_LINES` |*Not defined* |If defined, input characters will wrap to the next line |
|
||||
|
||||
## Examples
|
||||
## Examples :id=examples
|
||||
|
||||
### Hello World
|
||||
### Hello World :id=example-hello-world
|
||||
|
||||
Add the following to your `keymap.c`:
|
||||
|
||||
@ -46,7 +46,7 @@ void keyboard_post_init_user(void) {
|
||||
}
|
||||
```
|
||||
|
||||
### Custom Character Definition
|
||||
### Custom Character Definition :id=example-custom-character
|
||||
|
||||
Up to eight custom characters can be defined. This data is stored in the Character Generator RAM (CGRAM), and is not persistent across power cycles.
|
||||
|
||||
@ -77,15 +77,15 @@ void keyboard_post_init_user(void) {
|
||||
}
|
||||
```
|
||||
|
||||
## API
|
||||
## API :id=api
|
||||
|
||||
### `void hd44780_init(bool cursor, bool blink)`
|
||||
### `void hd44780_init(bool cursor, bool blink)` :id=api-hd44780-init
|
||||
|
||||
Initialize the display.
|
||||
|
||||
This function should be called only once, before any of the other functions can be called.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-hd44780-init-arguments
|
||||
|
||||
- `bool cursor`
|
||||
Whether to show the cursor.
|
||||
@ -94,7 +94,7 @@ This function should be called only once, before any of the other functions can
|
||||
|
||||
---
|
||||
|
||||
### `void hd44780_clear(void)`
|
||||
### `void hd44780_clear(void)` :id=api-hd44780-clear
|
||||
|
||||
Clear the display.
|
||||
|
||||
@ -102,7 +102,7 @@ This function is called on init.
|
||||
|
||||
---
|
||||
|
||||
### `void hd44780_home(void)`
|
||||
### `void hd44780_home(void)` :id=api-hd44780-home
|
||||
|
||||
Move the cursor to the home position.
|
||||
|
||||
@ -110,13 +110,13 @@ This function is called on init.
|
||||
|
||||
---
|
||||
|
||||
### `void hd44780_on(bool cursor, bool blink)`
|
||||
### `void hd44780_on(bool cursor, bool blink)` :id=api-hd44780-on
|
||||
|
||||
Turn the display on, and/or set the cursor properties.
|
||||
|
||||
This function is called on init.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-hd44780-on-arguments
|
||||
|
||||
- `bool cursor`
|
||||
Whether to show the cursor.
|
||||
@ -125,17 +125,17 @@ This function is called on init.
|
||||
|
||||
---
|
||||
|
||||
### `void hd44780_off(void)`
|
||||
### `void hd44780_off(void)` :id=api-hd44780-off
|
||||
|
||||
Turn the display off.
|
||||
|
||||
---
|
||||
|
||||
### `void hd44780_set_cursor(uint8_t col, uint8_t line)`
|
||||
### `void hd44780_set_cursor(uint8_t col, uint8_t line)` :id=api-hd44780-set-cursor
|
||||
|
||||
Move the cursor to the specified position on the display.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-hd44780-set-cursor-arguments
|
||||
|
||||
- `uint8_t col`
|
||||
The column number to move to, from 0 to 15 on 16x2 displays.
|
||||
@ -144,48 +144,48 @@ Move the cursor to the specified position on the display.
|
||||
|
||||
---
|
||||
|
||||
### `void hd44780_putc(char c)`
|
||||
### `void hd44780_putc(char c)` :id=api-hd44780-putc
|
||||
|
||||
Print a character to the display. The newline character `\n` will move the cursor to the start of the next line.
|
||||
|
||||
The exact character shown may depend on the ROM code of your particular display - refer to the datasheet for the full character set.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-hd44780-putc-arguments
|
||||
|
||||
- `char c`
|
||||
The character to print.
|
||||
|
||||
---
|
||||
|
||||
### `void hd44780_puts(const char *s)`
|
||||
### `void hd44780_puts(const char *s)` :id=api-hd44780-puts
|
||||
|
||||
Print a string of characters to the display.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-hd44780-puts-arguments
|
||||
|
||||
- `const char *s`
|
||||
The string to print.
|
||||
|
||||
---
|
||||
|
||||
### `void hd44780_puts_P(const char *s)`
|
||||
### `void hd44780_puts_P(const char *s)` :id=api-hd44780-puts-p
|
||||
|
||||
Print a string of characters from PROGMEM to the display.
|
||||
|
||||
On ARM devices, this function is simply an alias of `hd44780_puts()`.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-hd44780-puts-p-arguments
|
||||
|
||||
- `const char *s`
|
||||
The PROGMEM string to print (ie. `PSTR("Hello")`).
|
||||
|
||||
---
|
||||
|
||||
### `void hd44780_define_char(uint8_t index, uint8_t *data)`
|
||||
### `void hd44780_define_char(uint8_t index, uint8_t *data)` :id=api-hd44780-define-char
|
||||
|
||||
Define a custom character.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-hd44780-define-char-arguments
|
||||
|
||||
- `uint8_t index`
|
||||
The index of the custom character to define, from 0 to 7.
|
||||
@ -194,13 +194,13 @@ Define a custom character.
|
||||
|
||||
---
|
||||
|
||||
### `void hd44780_define_char_P(uint8_t index, const uint8_t *data)`
|
||||
### `void hd44780_define_char_P(uint8_t index, const uint8_t *data)` :id=api-hd44780-define-char-p
|
||||
|
||||
Define a custom character from PROGMEM.
|
||||
|
||||
On ARM devices, this function is simply an alias of `hd44780_define_char()`.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-hd44780-define-char-p-arguments
|
||||
|
||||
- `uint8_t index`
|
||||
The index of the custom character to define, from 0 to 7.
|
||||
@ -209,21 +209,21 @@ On ARM devices, this function is simply an alias of `hd44780_define_char()`.
|
||||
|
||||
---
|
||||
|
||||
### `bool hd44780_busy(void)`
|
||||
### `bool hd44780_busy(void)` :id=api-hd44780-busy
|
||||
|
||||
Indicates whether the display is currently processing, and cannot accept instructions.
|
||||
|
||||
#### Return Value
|
||||
#### Return Value :id=api-hd44780-busy-arguments
|
||||
|
||||
`true` if the display is busy.
|
||||
|
||||
---
|
||||
|
||||
### `void hd44780_write(uint8_t data, bool isData)`
|
||||
### `void hd44780_write(uint8_t data, bool isData)` :id=api-hd44780-write
|
||||
|
||||
Write a byte to the display.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-hd44780-write-arguments
|
||||
|
||||
- `uint8_t data`
|
||||
The byte to send to the display.
|
||||
@ -232,67 +232,67 @@ Write a byte to the display.
|
||||
|
||||
---
|
||||
|
||||
### `uint8_t hd44780_read(bool isData)`
|
||||
### `uint8_t hd44780_read(bool isData)` :id=api-hd44780-read
|
||||
|
||||
Read a byte from the display.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-hd44780-read-arguments
|
||||
|
||||
- `bool isData`
|
||||
Whether to read the current cursor position, or the character at the cursor.
|
||||
|
||||
#### Return Value
|
||||
#### Return Value :id=api-hd44780-read-return
|
||||
|
||||
If `isData` is `true`, the returned byte will be the character at the current DDRAM address. Otherwise, it will be the current DDRAM address and the busy flag.
|
||||
|
||||
---
|
||||
|
||||
### `void hd44780_command(uint8_t command)`
|
||||
### `void hd44780_command(uint8_t command)` :id=api-hd44780-command
|
||||
|
||||
Send a command to the display. Refer to the datasheet and `hd44780.h` for the valid commands and defines.
|
||||
|
||||
This function waits for the display to clear the busy flag before sending the command.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-hd44780-command-arguments
|
||||
|
||||
- `uint8_t command`
|
||||
The command to send.
|
||||
|
||||
---
|
||||
|
||||
### `void hd44780_data(uint8_t data)`
|
||||
### `void hd44780_data(uint8_t data)` :id=api-hd44780-data
|
||||
|
||||
Send a byte of data to the display.
|
||||
|
||||
This function waits for the display to clear the busy flag before sending the data.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-hd44780-data-arguments
|
||||
|
||||
- `uint8_t data`
|
||||
The byte of data to send.
|
||||
|
||||
---
|
||||
|
||||
### `void hd44780_set_cgram_address(uint8_t address)`
|
||||
### `void hd44780_set_cgram_address(uint8_t address)` :id=api-hd44780-set-cgram-address
|
||||
|
||||
Set the CGRAM address.
|
||||
|
||||
This function is used when defining custom characters.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-hd44780-set-cgram-address-arguments
|
||||
|
||||
- `uint8_t address`
|
||||
The CGRAM address to move to, from `0x00` to `0x3F`.
|
||||
|
||||
---
|
||||
|
||||
### `void hd44780_set_ddram_address(uint8_t address)`
|
||||
### `void hd44780_set_ddram_address(uint8_t address)` :id=api-hd44780-set-ddram-address
|
||||
|
||||
Set the DDRAM address.
|
||||
|
||||
This function is used when printing characters to the display, and setting the cursor.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-hd44780-set-ddram-address-arguments
|
||||
|
||||
- `uint8_t address`
|
||||
The DDRAM address to move to, from `0x00` to `0x7F`.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Send String
|
||||
# Send String :id=send-string
|
||||
|
||||
The Send String API is part of QMK's macro system. It allows for sequences of keystrokes to be sent automatically.
|
||||
|
||||
@ -6,7 +6,7 @@ The full ASCII character set is supported, along with all of the keycodes in the
|
||||
|
||||
?> Unicode characters are **not** supported with this API -- see the [Unicode](feature_unicode.md) feature instead.
|
||||
|
||||
## Usage
|
||||
## Usage :id=usage
|
||||
|
||||
Send String is enabled by default, so there is usually no need for any special setup. However, if it is disabled, add the following to your `rules.mk`:
|
||||
|
||||
@ -14,7 +14,7 @@ Send String is enabled by default, so there is usually no need for any special s
|
||||
SEND_STRING_ENABLE = yes
|
||||
```
|
||||
|
||||
## Basic Configuration
|
||||
## Basic Configuration :id=basic-configuration
|
||||
|
||||
Add the following to your `config.h`:
|
||||
|
||||
@ -23,7 +23,7 @@ Add the following to your `config.h`:
|
||||
|`SENDSTRING_BELL`|*Not defined* |If the [Audio](feature_audio.md) feature is enabled, the `\a` character (ASCII `BEL`) will beep the speaker.|
|
||||
|`BELL_SOUND` |`TERMINAL_SOUND`|The song to play when the `\a` character is encountered. By default, this is an eighth note of C5. |
|
||||
|
||||
## Keycodes
|
||||
## Keycodes :id=keycodes
|
||||
|
||||
The Send String functions accept C string literals, but specific keycodes can be injected with the below macros. All of the keycodes in the [Basic Keycode range](keycodes_basic.md) are supported (as these are the only ones that will actually be sent to the host), but with an `X_` prefix instead of `KC_`.
|
||||
|
||||
@ -44,13 +44,13 @@ The following characters are also mapped to their respective keycodes for conven
|
||||
|`\t` |`\x1B`|`TAB`|`KC_TAB` |
|
||||
| |`\x7F`|`DEL`|`KC_DELETE` |
|
||||
|
||||
### Language Support
|
||||
### Language Support :id=language-support
|
||||
|
||||
By default, Send String assumes your OS keyboard layout is set to US ANSI. If you are using a different keyboard layout, you can [override the lookup tables used to convert ASCII characters to keystrokes](reference_keymap_extras.md#sendstring-support).
|
||||
|
||||
## Examples
|
||||
## Examples :id=examples
|
||||
|
||||
### Hello World
|
||||
### Hello World :id=example-hello-world
|
||||
|
||||
A simple custom keycode which types out "Hello, world!" and the Enter key when pressed.
|
||||
|
||||
@ -70,7 +70,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
}
|
||||
```
|
||||
|
||||
### Keycode Injection
|
||||
### Keycode Injection :id=example-keycode-injection
|
||||
|
||||
This example types out opening and closing curly braces, then taps the left arrow key to move the cursor between the two.
|
||||
|
||||
@ -84,26 +84,26 @@ This example types Ctrl+A, then Ctrl+C, without releasing Ctrl.
|
||||
SEND_STRING(SS_LCTL("ac"));
|
||||
```
|
||||
|
||||
## API
|
||||
## API :id=api
|
||||
|
||||
### `void send_string(const char *string)`
|
||||
### `void send_string(const char *string)` :id=api-send-string
|
||||
|
||||
Type out a string of ASCII characters.
|
||||
|
||||
This function simply calls `send_string_with_delay(string, 0)`.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-send-string-arguments
|
||||
|
||||
- `const char *string`
|
||||
The string to type out.
|
||||
|
||||
---
|
||||
|
||||
### `void send_string_with_delay(const char *string, uint8_t interval)`
|
||||
### `void send_string_with_delay(const char *string, uint8_t interval)` :id=api-send-string-with-delay
|
||||
|
||||
Type out a string of ASCII characters, with a delay between each character.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-send-string-with-delay-arguments
|
||||
|
||||
- `const char *string`
|
||||
The string to type out.
|
||||
@ -112,26 +112,26 @@ Type out a string of ASCII characters, with a delay between each character.
|
||||
|
||||
---
|
||||
|
||||
### `void send_string_P(const char *string)`
|
||||
### `void send_string_P(const char *string)` :id=api-send-string-p
|
||||
|
||||
Type out a PROGMEM string of ASCII characters.
|
||||
|
||||
On ARM devices, this function is simply an alias for `send_string_with_delay(string, 0)`.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-send-string-p-arguments
|
||||
|
||||
- `const char *string`
|
||||
The string to type out.
|
||||
|
||||
---
|
||||
|
||||
### `void send_string_with_delay_P(const char *string, uint8_t interval)`
|
||||
### `void send_string_with_delay_P(const char *string, uint8_t interval)` :id=api-send-string-with-delay-p
|
||||
|
||||
Type out a PROGMEM string of ASCII characters, with a delay between each character.
|
||||
|
||||
On ARM devices, this function is simply an alias for `send_string_with_delay(string, interval)`.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-send-string-with-delay-p-arguments
|
||||
|
||||
- `const char *string`
|
||||
The string to type out.
|
||||
@ -140,76 +140,76 @@ On ARM devices, this function is simply an alias for `send_string_with_delay(str
|
||||
|
||||
---
|
||||
|
||||
### `void send_char(char ascii_code)`
|
||||
### `void send_char(char ascii_code)` :id=api-send-char
|
||||
|
||||
Type out an ASCII character.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-send-char-arguments
|
||||
|
||||
- `char ascii_code`
|
||||
The character to type.
|
||||
|
||||
---
|
||||
|
||||
### `void send_dword(uint32_t number)`
|
||||
### `void send_dword(uint32_t number)` :id=api-send-dword
|
||||
|
||||
Type out an eight digit (unsigned 32-bit) hexadecimal value.
|
||||
|
||||
The format is `[0-9a-f]{8}`, eg. `00000000` through `ffffffff`.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-send-dword-arguments
|
||||
|
||||
- `uint32_t number`
|
||||
The value to type, from 0 to 4,294,967,295.
|
||||
|
||||
---
|
||||
|
||||
### `void send_word(uint16_t number)`
|
||||
### `void send_word(uint16_t number)` :id=api-send-word
|
||||
|
||||
Type out a four digit (unsigned 16-bit) hexadecimal value.
|
||||
|
||||
The format is `[0-9a-f]{4}`, eg. `0000` through `ffff`.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-send-word-arguments
|
||||
|
||||
- `uint16_t number`
|
||||
The value to type, from 0 to 65,535.
|
||||
|
||||
---
|
||||
|
||||
### `void send_byte(uint8_t number)`
|
||||
### `void send_byte(uint8_t number)` :id=api-send-bytes
|
||||
|
||||
Type out a two digit (8-bit) hexadecimal value.
|
||||
|
||||
The format is `[0-9a-f]{2}`, eg. `00` through `ff`.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-send-byte-arguments
|
||||
|
||||
- `uint8_t number`
|
||||
The value to type, from 0 to 255.
|
||||
|
||||
---
|
||||
|
||||
### `void send_nibble(uint8_t number)`
|
||||
### `void send_nibble(uint8_t number)` :id=api-send-nibble
|
||||
|
||||
Type out a single hexadecimal digit.
|
||||
|
||||
The format is `[0-9a-f]{1}`, eg. `0` through `f`.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-send-nibble-arguments
|
||||
|
||||
- `uint8_t number`
|
||||
The value to type, from 0 to 15.
|
||||
|
||||
---
|
||||
|
||||
### `void tap_random_base64(void)`
|
||||
### `void tap_random_base64(void)` :id=api-tap-random-base64
|
||||
|
||||
Type a pseudorandom character from the set `A-Z`, `a-z`, `0-9`, `+` and `/`.
|
||||
|
||||
---
|
||||
|
||||
### `SEND_STRING(string)`
|
||||
### `SEND_STRING(string)` :id=api-send-string-macro
|
||||
|
||||
Shortcut macro for `send_string_with_delay_P(PSTR(string), 0)`.
|
||||
|
||||
@ -217,7 +217,7 @@ On ARM devices, this define evaluates to `send_string_with_delay(string, 0)`.
|
||||
|
||||
---
|
||||
|
||||
### `SEND_STRING_DELAY(string, interval)`
|
||||
### `SEND_STRING_DELAY(string, interval)` :id=api-send-string-delay-macro
|
||||
|
||||
Shortcut macro for `send_string_with_delay_P(PSTR(string), interval)`.
|
||||
|
||||
|
@ -72,7 +72,7 @@ Configuration-wise, you'll need to set up the peripheral as per your MCU's datas
|
||||
|
||||
The following configuration values depend on the specific MCU in use.
|
||||
|
||||
### I2Cv1 :id=i2cv1
|
||||
### I2Cv1 :id=arm-configuration-i2cv1
|
||||
|
||||
* STM32F1xx
|
||||
* STM32F2xx
|
||||
@ -88,7 +88,7 @@ See [this page](https://www.playembedded.org/blog/stm32-i2c-chibios/#7_I2Cv1_con
|
||||
|`I2C1_CLOCK_SPEED` |`100000` |
|
||||
|`I2C1_DUTY_CYCLE` |`STD_DUTY_CYCLE`|
|
||||
|
||||
### I2Cv2 :id=i2cv2
|
||||
### I2Cv2 :id=arm-configuration-i2cv2
|
||||
|
||||
* STM32F0xx
|
||||
* STM32F3xx
|
||||
@ -105,9 +105,9 @@ See [this page](https://www.playembedded.org/blog/stm32-i2c-chibios/#8_I2Cv2_I2C
|
||||
|`I2C1_TIMINGR_SCLH` |`38U` |
|
||||
|`I2C1_TIMINGR_SCLL` |`129U` |
|
||||
|
||||
## Functions :id=functions
|
||||
## API :id=api
|
||||
|
||||
### `void i2c_init(void)`
|
||||
### `void i2c_init(void)` :id=api-i2c-init
|
||||
|
||||
Initialize the I2C driver. This function must be called only once, before any of the below functions can be called.
|
||||
|
||||
@ -126,28 +126,28 @@ void i2c_init(void) {
|
||||
|
||||
---
|
||||
|
||||
### `i2c_status_t i2c_start(uint8_t address, uint16_t timeout)`
|
||||
### `i2c_status_t i2c_start(uint8_t address, uint16_t timeout)` :id=api-i2c-start
|
||||
|
||||
Start an I2C transaction.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-i2c-start-arguments
|
||||
|
||||
- `uint8_t address`
|
||||
The 7-bit I2C address of the device (ie. without the read/write bit - this will be set automatically).
|
||||
- `uint16_t timeout`
|
||||
The time in milliseconds to wait for a response from the target device.
|
||||
|
||||
#### Return Value
|
||||
#### Return Value :id=api-i2c-start-return
|
||||
|
||||
`I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`.
|
||||
|
||||
---
|
||||
|
||||
### `i2c_status_t i2c_transmit(uint8_t address, uint8_t *data, uint16_t length, uint16_t timeout)`
|
||||
### `i2c_status_t i2c_transmit(uint8_t address, uint8_t *data, uint16_t length, uint16_t timeout)` :id=api-i2c-transmit
|
||||
|
||||
Send multiple bytes to the selected I2C device.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-i2c-transmit-arguments
|
||||
|
||||
- `uint8_t address`
|
||||
The 7-bit I2C address of the device.
|
||||
@ -158,17 +158,17 @@ Send multiple bytes to the selected I2C device.
|
||||
- `uint16_t timeout`
|
||||
The time in milliseconds to wait for a response from the target device.
|
||||
|
||||
#### Return Value
|
||||
#### Return Value :id=api-i2c-transmit-return
|
||||
|
||||
`I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`.
|
||||
|
||||
---
|
||||
|
||||
### `i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout)`
|
||||
### `i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout)` :id=api-i2c-receive
|
||||
|
||||
Receive multiple bytes from the selected I2C device.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-i2c-receive-arguments
|
||||
|
||||
- `uint8_t address`
|
||||
The 7-bit I2C address of the device.
|
||||
@ -179,17 +179,17 @@ Receive multiple bytes from the selected I2C device.
|
||||
- `uint16_t timeout`
|
||||
The time in milliseconds to wait for a response from the target device.
|
||||
|
||||
#### Return Value
|
||||
#### Return Value :id=api-i2c-receive-return
|
||||
|
||||
`I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`.
|
||||
|
||||
---
|
||||
|
||||
### `i2c_status_t i2c_writeReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)`
|
||||
### `i2c_status_t i2c_writeReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` :id=api-i2c-writereg
|
||||
|
||||
Writes to a register with an 8-bit address on the I2C device.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-i2c-writereg-arguments
|
||||
|
||||
- `uint8_t devaddr`
|
||||
The 7-bit I2C address of the device.
|
||||
@ -202,17 +202,17 @@ Writes to a register with an 8-bit address on the I2C device.
|
||||
- `uint16_t timeout`
|
||||
The time in milliseconds to wait for a response from the target device.
|
||||
|
||||
#### Return Value
|
||||
#### Return Value :id=api-i2c-writereg-return
|
||||
|
||||
`I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`.
|
||||
|
||||
---
|
||||
|
||||
### `i2c_status_t i2c_writeReg16(uint8_t devaddr, uint16_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)`
|
||||
### `i2c_status_t i2c_writeReg16(uint8_t devaddr, uint16_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` :id=api-i2c-writereg16
|
||||
|
||||
Writes to a register with a 16-bit address (big endian) on the I2C device.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-i2c-writereg16-arguments
|
||||
|
||||
- `uint8_t devaddr`
|
||||
The 7-bit I2C address of the device.
|
||||
@ -225,17 +225,17 @@ Writes to a register with a 16-bit address (big endian) on the I2C device.
|
||||
- `uint16_t timeout`
|
||||
The time in milliseconds to wait for a response from the target device.
|
||||
|
||||
#### Return Value
|
||||
#### Return Value :id=api-i2c-writereg16-return
|
||||
|
||||
`I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`.
|
||||
|
||||
---
|
||||
|
||||
### `i2c_status_t i2c_readReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)`
|
||||
### `i2c_status_t i2c_readReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` :id=api-i2c-readreg
|
||||
|
||||
Reads from a register with an 8-bit address on the I2C device.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-i2c-readreg-arguments
|
||||
|
||||
- `uint8_t devaddr`
|
||||
The 7-bit I2C address of the device.
|
||||
@ -246,7 +246,7 @@ Reads from a register with an 8-bit address on the I2C device.
|
||||
- `uint16_t timeout`
|
||||
The time in milliseconds to wait for a response from the target device.
|
||||
|
||||
#### Return Value
|
||||
#### Return Value :id=api-i2c-readreg-return
|
||||
|
||||
`I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`.
|
||||
|
||||
@ -256,7 +256,7 @@ Reads from a register with an 8-bit address on the I2C device.
|
||||
|
||||
Reads from a register with a 16-bit address (big endian) on the I2C device.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-i2c-readreg16-arguments
|
||||
|
||||
- `uint8_t devaddr`
|
||||
The 7-bit I2C address of the device.
|
||||
@ -267,12 +267,12 @@ Reads from a register with a 16-bit address (big endian) on the I2C device.
|
||||
- `uint16_t timeout`
|
||||
The time in milliseconds to wait for a response from the target device.
|
||||
|
||||
#### Return Value
|
||||
#### Return Value :id=api-i2c-readreg16-return
|
||||
|
||||
`I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`.
|
||||
|
||||
---
|
||||
|
||||
### `i2c_status_t i2c_stop(void)`
|
||||
### `i2c_status_t i2c_stop(void)` :id=api-i2c-stop
|
||||
|
||||
Stop the current I2C transaction.
|
||||
|
@ -1,8 +1,8 @@
|
||||
# SPI Master Driver
|
||||
# SPI Master Driver :id=spi-master-driver
|
||||
|
||||
The SPI Master drivers used in QMK have a set of common functions to allow portability between MCUs.
|
||||
|
||||
## AVR Configuration
|
||||
## AVR Configuration :id=avr-configuration
|
||||
|
||||
No special setup is required - just connect the `SS`, `SCK`, `MOSI` and `MISO` pins of your SPI devices to the matching pins on the MCU:
|
||||
|
||||
@ -16,7 +16,7 @@ No special setup is required - just connect the `SS`, `SCK`, `MOSI` and `MISO` p
|
||||
You may use more than one slave select pin, not just the `SS` pin. This is useful when you have multiple devices connected and need to communicate with them individually.
|
||||
`SPI_SS_PIN` can be passed to `spi_start()` to refer to `SS`.
|
||||
|
||||
## ChibiOS/ARM Configuration
|
||||
## ChibiOS/ARM Configuration :id=arm-configuration
|
||||
|
||||
You'll need to determine which pins can be used for SPI -- as an example, STM32 parts generally have multiple SPI peripherals, labeled SPI1, SPI2, SPI3 etc.
|
||||
|
||||
@ -49,19 +49,19 @@ Configuration-wise, you'll need to set up the peripheral as per your MCU's datas
|
||||
|
||||
As per the AVR configuration, you may choose any other standard GPIO as a slave select pin, which should be supplied to `spi_start()`.
|
||||
|
||||
## Functions
|
||||
## API :id=api
|
||||
|
||||
### `void spi_init(void)`
|
||||
### `void spi_init(void)` :id=api-spi-init
|
||||
|
||||
Initialize the SPI driver. This function must be called only once, before any of the below functions can be called.
|
||||
|
||||
---
|
||||
|
||||
### `bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor)`
|
||||
### `bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor)` :id=api-spi-start
|
||||
|
||||
Start an SPI transaction.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-spi-start-arguments
|
||||
|
||||
- `pin_t slavePin`
|
||||
The QMK pin to assert as the slave select pin, eg. `B4`.
|
||||
@ -80,71 +80,71 @@ Start an SPI transaction.
|
||||
- `uint16_t divisor`
|
||||
The SPI clock divisor, will be rounded up to the nearest power of two. This number can be calculated by dividing the MCU's clock speed by the desired SPI clock speed. For example, an MCU running at 8 MHz wanting to talk to an SPI device at 4 MHz would set the divisor to `2`.
|
||||
|
||||
#### Return Value
|
||||
#### Return Value :id=api-spi-start-return
|
||||
|
||||
`false` if the supplied parameters are invalid or the SPI peripheral is already in use, or `true`.
|
||||
|
||||
---
|
||||
|
||||
### `spi_status_t spi_write(uint8_t data)`
|
||||
### `spi_status_t spi_write(uint8_t data)` :id=api-spi-write
|
||||
|
||||
Write a byte to the selected SPI device.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-spi-write-arguments
|
||||
|
||||
- `uint8_t data`
|
||||
The byte to write.
|
||||
|
||||
#### Return Value
|
||||
#### Return Value :id=api-spi-write-return
|
||||
|
||||
`SPI_STATUS_TIMEOUT` if the timeout period elapses, or `SPI_STATUS_SUCCESS`.
|
||||
|
||||
---
|
||||
|
||||
### `spi_status_t spi_read(void)`
|
||||
### `spi_status_t spi_read(void)` :id=api-spi-read
|
||||
|
||||
Read a byte from the selected SPI device.
|
||||
|
||||
#### Return Value
|
||||
#### Return Value :id=api-spi-read-return
|
||||
|
||||
`SPI_STATUS_TIMEOUT` if the timeout period elapses, or the byte read from the device.
|
||||
|
||||
---
|
||||
|
||||
### `spi_status_t spi_transmit(const uint8_t *data, uint16_t length)`
|
||||
### `spi_status_t spi_transmit(const uint8_t *data, uint16_t length)` :id=api-spi-transmit
|
||||
|
||||
Send multiple bytes to the selected SPI device.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-spi-transmit-arguments
|
||||
|
||||
- `const uint8_t *data`
|
||||
A pointer to the data to write from.
|
||||
- `uint16_t length`
|
||||
The number of bytes to write. Take care not to overrun the length of `data`.
|
||||
|
||||
#### Return Value
|
||||
#### Return Value :id=api-spi-transmit-return
|
||||
|
||||
`SPI_STATUS_TIMEOUT` if the timeout period elapses, `SPI_STATUS_ERROR` if some other error occurs, otherwise `SPI_STATUS_SUCCESS`.
|
||||
|
||||
---
|
||||
|
||||
### `spi_status_t spi_receive(uint8_t *data, uint16_t length)`
|
||||
### `spi_status_t spi_receive(uint8_t *data, uint16_t length)` :id=api-spi-receive
|
||||
|
||||
Receive multiple bytes from the selected SPI device.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-spi-receive-arguments
|
||||
|
||||
- `uint8_t *data`
|
||||
A pointer to the buffer to read into.
|
||||
- `uint16_t length`
|
||||
The number of bytes to read. Take care not to overrun the length of `data`.
|
||||
|
||||
#### Return Value
|
||||
#### Return Value :id=api-spi-receive-return
|
||||
|
||||
`SPI_STATUS_TIMEOUT` if the timeout period elapses, `SPI_STATUS_ERROR` if some other error occurs, otherwise `SPI_STATUS_SUCCESS`.
|
||||
|
||||
---
|
||||
|
||||
### `void spi_stop(void)`
|
||||
### `void spi_stop(void)` :id=api-spi-stop
|
||||
|
||||
End the current SPI transaction. This will deassert the slave select pin and reset the endianness, mode and divisor configured by `spi_start()`.
|
||||
|
@ -1,10 +1,10 @@
|
||||
# UART Driver
|
||||
# UART Driver :id=uart-driver
|
||||
|
||||
The UART drivers used in QMK have a set of common functions to allow portability between MCUs.
|
||||
|
||||
Currently, this driver does not support enabling hardware flow control (the `RTS` and `CTS` pins) if available, but may do so in future.
|
||||
|
||||
## AVR Configuration
|
||||
## AVR Configuration :id=avr-configuration
|
||||
|
||||
No special setup is required - just connect the `RX` and `TX` pins of your UART device to the opposite pins on the MCU:
|
||||
|
||||
@ -16,7 +16,7 @@ No special setup is required - just connect the `RX` and `TX` pins of your UART
|
||||
|ATmega32A |`D1`|`D0`|*n/a*|*n/a*|
|
||||
|ATmega328/P |`D1`|`D0`|*n/a*|*n/a*|
|
||||
|
||||
## ChibiOS/ARM Configuration
|
||||
## ChibiOS/ARM Configuration :id=arm-configuration
|
||||
|
||||
You'll need to determine which pins can be used for UART -- as an example, STM32 parts generally have multiple UART peripherals, labeled USART1, USART2, USART3 etc.
|
||||
|
||||
@ -47,45 +47,45 @@ Configuration-wise, you'll need to set up the peripheral as per your MCU's datas
|
||||
|`#define SD1_RTS_PIN` |The pin to use for RTS |`A12` |
|
||||
|`#define SD1_RTS_PAL_MODE`|The alternate function mode for RTS |`7` |
|
||||
|
||||
## Functions
|
||||
## API :id=api
|
||||
|
||||
### `void uart_init(uint32_t baud)`
|
||||
### `void uart_init(uint32_t baud)` :id=api-uart-init
|
||||
|
||||
Initialize the UART driver. This function must be called only once, before any of the below functions can be called.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-uart-init-arguments
|
||||
|
||||
- `uint32_t baud`
|
||||
The baud rate to transmit and receive at. This may depend on the device you are communicating with. Common values are 1200, 2400, 4800, 9600, 19200, 38400, 57600, and 115200.
|
||||
|
||||
---
|
||||
|
||||
### `void uart_write(uint8_t data)`
|
||||
### `void uart_write(uint8_t data)` :id=api-uart-write
|
||||
|
||||
Transmit a single byte.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-uart-write-arguments
|
||||
|
||||
- `uint8_t data`
|
||||
The byte to write.
|
||||
|
||||
---
|
||||
|
||||
### `uint8_t uart_read(void)`
|
||||
### `uint8_t uart_read(void)` :id=api-uart-read
|
||||
|
||||
Receive a single byte.
|
||||
|
||||
#### Return Value
|
||||
#### Return Value :id=api-uart-read-return
|
||||
|
||||
The byte read from the receive buffer. This function will block if the buffer is empty (ie. no data to read).
|
||||
|
||||
---
|
||||
|
||||
### `void uart_transmit(const uint8_t *data, uint16_t length)`
|
||||
### `void uart_transmit(const uint8_t *data, uint16_t length)` :id=api-uart-transmit
|
||||
|
||||
Transmit multiple bytes.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-uart-transmit-arguments
|
||||
|
||||
- `const uint8_t *data`
|
||||
A pointer to the data to write from.
|
||||
@ -94,11 +94,11 @@ Transmit multiple bytes.
|
||||
|
||||
---
|
||||
|
||||
### `void uart_receive(char *data, uint16_t length)`
|
||||
### `void uart_receive(char *data, uint16_t length)` :id=api-uart-receive
|
||||
|
||||
Receive multiple bytes.
|
||||
|
||||
#### Arguments
|
||||
#### Arguments :id=api-uart-receive-arguments
|
||||
|
||||
- `uint8_t *data`
|
||||
A pointer to the buffer to read into.
|
||||
@ -107,10 +107,10 @@ Receive multiple bytes.
|
||||
|
||||
---
|
||||
|
||||
### `bool uart_available(void)`
|
||||
### `bool uart_available(void)` :id=api-uart-available
|
||||
|
||||
Return whether the receive buffer contains data. Call this function to determine if `uart_read()` will return data immediately.
|
||||
|
||||
#### Return Value
|
||||
#### Return Value :id=api-uart-available-return
|
||||
|
||||
`true` if the receive buffer length is non-zero.
|
||||
|
@ -18,7 +18,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#pragma once
|
||||
|
||||
#define QUICK_TAP_TERM 0
|
||||
#define TAPPING_TERM 100
|
||||
|
||||
/* Select hand configuration */
|
||||
#define MASTER_LEFT
|
||||
|
@ -8,6 +8,9 @@
|
||||
"split": {
|
||||
"soft_serial_pin": "D2"
|
||||
},
|
||||
"tapping": {
|
||||
"term": 100
|
||||
},
|
||||
"rgblight": {
|
||||
"hue_steps": 10
|
||||
},
|
||||
|
@ -18,7 +18,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#pragma once
|
||||
|
||||
#define QUICK_TAP_TERM 0
|
||||
#define TAPPING_TERM 100
|
||||
|
||||
/* Select hand configuration */
|
||||
#define MASTER_LEFT
|
||||
|
@ -8,6 +8,9 @@
|
||||
"split": {
|
||||
"soft_serial_pin": "D2"
|
||||
},
|
||||
"tapping": {
|
||||
"term": 100
|
||||
},
|
||||
"rgblight": {
|
||||
"hue_steps": 10
|
||||
},
|
||||
|
@ -16,6 +16,9 @@
|
||||
"split": {
|
||||
"soft_serial_pin": "D0"
|
||||
},
|
||||
"tapping": {
|
||||
"term": 100
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"bootloader": "caterina",
|
||||
"layout_aliases": {
|
||||
|
@ -18,9 +18,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#pragma once
|
||||
|
||||
/* define tapping term */
|
||||
#define TAPPING_TERM 100
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
|
@ -22,6 +22,3 @@
|
||||
#define RGBLIGHT_EFFECT_BREATHING
|
||||
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
|
||||
#define RGBLIGHT_MODE_STATIC_GRADIENT
|
||||
|
||||
//#define RETRO_TAPPING
|
||||
#define TAPPING_TERM 175
|
||||
|
@ -7,6 +7,9 @@
|
||||
"brightness_steps": 8,
|
||||
"led_count": 6
|
||||
},
|
||||
"tapping": {
|
||||
"term": 175
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "E6"
|
||||
},
|
||||
|
@ -7,6 +7,9 @@
|
||||
"brightness_steps": 8,
|
||||
"led_count": 6
|
||||
},
|
||||
"tapping": {
|
||||
"term": 175
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "E6"
|
||||
},
|
||||
|
@ -7,6 +7,9 @@
|
||||
"brightness_steps": 8,
|
||||
"led_count": 6
|
||||
},
|
||||
"tapping": {
|
||||
"term": 175
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "E6"
|
||||
},
|
||||
|
@ -28,6 +28,9 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"tapping": {
|
||||
"term": 100
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"bootloader": "caterina",
|
||||
"layouts": {
|
||||
|
@ -1,37 +0,0 @@
|
||||
/* Copyright 2022 Clickety Split Ltd.
|
||||
* https://clicketysplit.ca
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
/* define tapping term */
|
||||
#define TAPPING_TERM 100
|
||||
|
||||
/* disable action features */
|
||||
//#define NO_ACTION_LAYER
|
||||
//#define NO_ACTION_TAPPING
|
||||
//#define NO_ACTION_ONESHOT
|
||||
|
||||
/*
|
||||
* Feature disable options
|
||||
* These options are also useful to firmware size reduction.
|
||||
*/
|
||||
|
||||
/* disable debug print */
|
||||
// #define NO_DEBUG
|
||||
|
||||
/* disable print */
|
||||
// #define NO_PRINT
|
@ -22,10 +22,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define MATRIX_ROWS 5
|
||||
#define MATRIX_COLS 16
|
||||
|
||||
//#define DIODE_DIRECTION
|
||||
|
||||
#define TAPPING_TERM 175
|
||||
|
||||
/*
|
||||
* Feature disable options
|
||||
* These options are also useful to firmware size reduction.
|
||||
|
@ -8,6 +8,9 @@
|
||||
"pid": "0x660C",
|
||||
"device_version": "1.0.0"
|
||||
},
|
||||
"tapping": {
|
||||
"term": 175
|
||||
},
|
||||
"indicators": {
|
||||
"caps_lock": "B6",
|
||||
"on_state": 0
|
||||
|
@ -20,6 +20,3 @@
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
/* Defining tapping term */
|
||||
#define TAPPING_TERM 250
|
@ -8,6 +8,9 @@
|
||||
"pid": "0x4450",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"tapping": {
|
||||
"term": 250
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["D0", "D4", "D1"],
|
||||
"rows": ["D7", "C6"]
|
||||
|
@ -31,9 +31,6 @@
|
||||
|
||||
//#define RGBLIGHT_DISABLE_KEYCODES
|
||||
|
||||
// Tap dance term declaration
|
||||
#define TAPPING_TERM 300
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
|
||||
|
@ -18,6 +18,9 @@
|
||||
{"pin_a": "B6", "pin_b": "B5"}
|
||||
]
|
||||
},
|
||||
"tapping": {
|
||||
"term": 300
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "A10"
|
||||
},
|
||||
|
@ -5,6 +5,3 @@
|
||||
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
/* Tap dancing params */
|
||||
#define TAPPING_TERM 250
|
||||
|
@ -8,6 +8,9 @@
|
||||
"pid": "0x2020",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"tapping": {
|
||||
"term": 250
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["D4", "C6", "D7", "E6", "B4"],
|
||||
"rows": ["B3", "B2"]
|
||||
|
@ -17,9 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
#define TAPPING_TERM 400
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
|
@ -8,6 +8,9 @@
|
||||
"pid": "0x3660",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"tapping": {
|
||||
"term": 400
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["D2", "D3", "C6", "C7", "D5", "D4", "D7", "B4", "B5", "B6", "F7", "F6", "F5", "F4", "F1"],
|
||||
"rows": ["B0", "B1", "B2", "B3", "B7"]
|
||||
|
@ -4,5 +4,3 @@
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
#define TAPPING_TERM 100
|
||||
|
@ -8,6 +8,9 @@
|
||||
"pid": "0x0000",
|
||||
"device_version": "0.0.3"
|
||||
},
|
||||
"tapping": {
|
||||
"term": 100
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["F5", "F6", "F7", "F0", "F1", "F4", "B6", "B5", "D7", "C7", "D6", "B7"],
|
||||
"rows": ["D2", "D3", "D0", "D1"]
|
||||
|
@ -22,6 +22,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define RCPC_KEYS KC_RCTL, KC_TRNS, KC_PGDN
|
||||
#define LSPO_KEYS KC_LSFT, KC_TRNS, KC_HOME
|
||||
#define LCPO_KEYS KC_LCTL, KC_TRNS, KC_END
|
||||
|
||||
/* Enable double tab */
|
||||
#define TAPPING_TERM 175
|
||||
|
@ -18,6 +18,9 @@
|
||||
"levels": 5,
|
||||
"breathing": true
|
||||
},
|
||||
"tapping": {
|
||||
"term": 175
|
||||
},
|
||||
"processor": "at90usb1286",
|
||||
"bootloader": "halfkay",
|
||||
"layouts": {
|
||||
|
@ -17,7 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#pragma once
|
||||
|
||||
#define TAPPING_TERM 500
|
||||
#define PERMISSIVE_HOLD
|
||||
|
||||
/*
|
||||
|
@ -8,6 +8,9 @@
|
||||
"pid": "0x6942",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"tapping": {
|
||||
"term": 500
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["A8", "A9", "B14", "B12", "B13", "B15", "B3", "B11", "A4", "A5", "A6", "A7", "B0", "B1", "B10"],
|
||||
"rows": ["B5", "B6", "B7", "B9", "B8"]
|
||||
|
@ -17,9 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
#define TAPPING_TERM 400
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
|
@ -8,6 +8,9 @@
|
||||
"pid": "0x6060",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"tapping": {
|
||||
"term": 400
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["B2", "B1", "F6", "F4"],
|
||||
"rows": ["D1", "D4", "C6", "D7", "E6"]
|
||||
|
@ -22,7 +22,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
#define TAPPING_TERM 500
|
||||
#define PERMISSIVE_HOLD
|
||||
|
||||
/*
|
||||
|
@ -7,6 +7,9 @@
|
||||
"pid": "0x6465",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"tapping": {
|
||||
"term": 500
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": false,
|
||||
|
@ -17,5 +17,3 @@
|
||||
#pragma once
|
||||
|
||||
#define MOUSEKEY_INTERVAL 32
|
||||
|
||||
#define TAPPING_TERM 175
|
@ -8,6 +8,9 @@
|
||||
"pid": "0x002A",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"tapping": {
|
||||
"term": 175
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["B10", "B1", "B0", "B15", "A8", "B3", "B4", "B5", "B6", "B7", "B8", "B9"],
|
||||
"rows": ["A6", "A5", "A4", "A3", "A2"]
|
||||
|
@ -17,5 +17,3 @@
|
||||
#pragma once
|
||||
|
||||
#define MOUSEKEY_INTERVAL 32
|
||||
|
||||
#define TAPPING_TERM 175
|
||||
|
@ -8,6 +8,9 @@
|
||||
"pid": "0x002B",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"tapping": {
|
||||
"term": 175
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["B10", "B1", "B0", "B15", "A8", "B3", "B4", "B5", "B14", "A0", "B8", "B9"],
|
||||
"rows": ["A6", "A5", "A4", "A3", "A2"]
|
||||
|
@ -17,9 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#pragma once
|
||||
|
||||
//define maximum duration of hold required to register a tap vs hold default is 200
|
||||
#define TAPPING_TERM 150 //reduce time required to register a held key
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
|
@ -8,6 +8,9 @@
|
||||
"pid": "0x6060",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"tapping": {
|
||||
"term": 150
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["B0", "D0", "D5", "B6", "D4", "C7", "F7", "F6", "F5", "F4", "F1", "F0"],
|
||||
"rows": ["B5", "B4", "D7", "D6"]
|
||||
|
@ -3,8 +3,6 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#define TAPPING_TERM 150
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
#define AUDIO_PIN A5
|
||||
#define AUDIO_PIN_ALT A4
|
||||
|
@ -9,6 +9,9 @@
|
||||
"device_version": "0.2.1",
|
||||
"force_nkro": true
|
||||
},
|
||||
"tapping": {
|
||||
"term": 150
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["A2", "A1", "A0", "B8", "B13", "B14", "B15", "B9", "B10", "B11", "B3", "B2", "B1", "B0"],
|
||||
"rows": ["B7", "B6", "B5", "B4"]
|
||||
|
@ -31,7 +31,6 @@
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
#define TAPPING_TERM 500
|
||||
#define PERMISSIVE_HOLD
|
||||
|
||||
// RGB Stuff
|
||||
|
@ -6,6 +6,9 @@
|
||||
"rgblight": {
|
||||
"led_count": 39
|
||||
},
|
||||
"tapping": {
|
||||
"term": 500
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "B0"
|
||||
},
|
||||
|
@ -20,7 +20,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#pragma once
|
||||
|
||||
#define QUICK_TAP_TERM 0
|
||||
#define TAPPING_TERM 100
|
||||
|
||||
#define SERIAL_SLAVE_BUFFER_LENGTH ((MATRIX_ROWS)/2)
|
||||
#define SERIAL_MASTER_BUFFER_LENGTH ((MATRIX_ROWS)/2)
|
||||
|
@ -11,6 +11,9 @@
|
||||
"split": {
|
||||
"soft_serial_pin": "D2"
|
||||
},
|
||||
"tapping": {
|
||||
"term": 100
|
||||
},
|
||||
"rgblight": {
|
||||
"hue_steps": 10
|
||||
},
|
||||
|
@ -20,7 +20,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#pragma once
|
||||
|
||||
#define QUICK_TAP_TERM 0
|
||||
#define TAPPING_TERM 100
|
||||
|
||||
#define SPLIT_LAYER_STATE_ENABLE
|
||||
#define SPLIT_LED_STATE_ENABLE
|
||||
|
@ -16,6 +16,9 @@
|
||||
"split": {
|
||||
"soft_serial_pin": "D2"
|
||||
},
|
||||
"tapping": {
|
||||
"term": 100
|
||||
},
|
||||
"rgblight": {
|
||||
"hue_steps": 10
|
||||
},
|
||||
|
@ -47,5 +47,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
//#define NO_ACTION_LAYER
|
||||
//#define NO_ACTION_TAPPING
|
||||
//#define NO_ACTION_ONESHOT
|
||||
|
||||
#define TAPPING_TERM 100
|
||||
|
@ -13,6 +13,9 @@
|
||||
"brightness_steps": 8,
|
||||
"led_count": 40
|
||||
},
|
||||
"tapping": {
|
||||
"term": 100
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "F0"
|
||||
},
|
||||
|
@ -52,5 +52,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
//#define EE_HANDS
|
||||
#define I2C_MASTER_LEFT
|
||||
//#define I2C_MASTER_RIGHT
|
||||
|
||||
#define TAPPING_TERM 120
|
||||
|
@ -25,6 +25,9 @@
|
||||
"led_count": 9,
|
||||
"split": true
|
||||
},
|
||||
"tapping": {
|
||||
"term": 120
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "F0"
|
||||
},
|
||||
|
@ -16,8 +16,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
/* Tap interval for tap dance */
|
||||
#define TAPPING_TERM 400
|
||||
|
||||
/* Oneshot interval */
|
||||
#define ONESHOT_TIMEOUT 5000
|
||||
|
@ -8,6 +8,9 @@
|
||||
"pid": "0x3777",
|
||||
"device_version": "0.1.0"
|
||||
},
|
||||
"tapping": {
|
||||
"term": 400
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["B5", "C6", "D4"],
|
||||
"rows": ["B4", "E6", "D7", "B3", "B2", "B6"]
|
||||
|
@ -27,8 +27,6 @@
|
||||
#define RGBLIGHT_EFFECT_ALTERNATING
|
||||
#define RGBLIGHT_EFFECT_TWINKLE
|
||||
|
||||
#define TAPPING_TERM 250
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
|
@ -18,6 +18,9 @@
|
||||
"brightness_steps": 8,
|
||||
"led_count": 3
|
||||
},
|
||||
"tapping": {
|
||||
"term": 250
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "B7"
|
||||
},
|
||||
|
@ -16,8 +16,6 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#define TAPPING_TERM 100
|
||||
|
||||
/* joystick support */
|
||||
#ifdef JOYSTICK_ENABLE
|
||||
# define JOYSTICK_AXIS_COUNT 2
|
||||
|
@ -28,6 +28,9 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"tapping": {
|
||||
"term": 100
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"bootloader": "caterina",
|
||||
"layouts": {
|
||||
|
@ -1,18 +0,0 @@
|
||||
/* Copyright 2021 Domanic Calleja
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#define TAPPING_TERM 100
|
@ -16,6 +16,9 @@
|
||||
"split": {
|
||||
"soft_serial_pin": "D2"
|
||||
},
|
||||
"tapping": {
|
||||
"term": 100
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"bootloader": "caterina",
|
||||
"layouts": {
|
||||
|
@ -1,18 +0,0 @@
|
||||
/* Copyright 2021 Domanic Calleja
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#define TAPPING_TERM 100
|
@ -8,6 +8,9 @@
|
||||
"pid": "0x4C53",
|
||||
"device_version": "30.3.1"
|
||||
},
|
||||
"tapping": {
|
||||
"term": 100
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1"],
|
||||
"rows": ["B7", "B3", "B2", "B1", "B0"]
|
||||
|
@ -13,11 +13,6 @@
|
||||
/* set the tapping term for glidepoint pad to register a tap click */
|
||||
//#define CIRQUE_PINNACLE_TAPPING_TERM 0 // This is set to 0 to disable it
|
||||
|
||||
/* TAPPING_TERM value is used for the CIRQUE_PINNACLE_TAPPING_TERM as well by default
|
||||
* defining it this way allows us to easily modify it with DYNAMIC_TAPPING_TERM_ENABLE
|
||||
*/
|
||||
#define TAPPING_TERM 0
|
||||
|
||||
/* spi config */
|
||||
#define SPI_DRIVER SPID1
|
||||
#define SPI_SCK_PIN A5
|
||||
|
@ -29,6 +29,9 @@
|
||||
"led_count": 3,
|
||||
"sleep": true
|
||||
},
|
||||
"tapping": {
|
||||
"term": 0
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "A3"
|
||||
},
|
||||
|
@ -19,10 +19,6 @@
|
||||
/* allows the "key" button on the blackpill to toggle caps lock for user testing before soldering */
|
||||
#define DIP_SWITCH_PINS { A0 }
|
||||
|
||||
/* TAPPING_TERM value is used for the CIRQUE_PINNACLE_TAPPING_TERM as well by default
|
||||
* defining it this way allows us to easily modify it with DYNAMIC_TAPPING_TERM_ENABLE
|
||||
*/
|
||||
#define TAPPING_TERM 0
|
||||
#define CIRQUE_PINNACLE_TAP_ENABLE
|
||||
#define POINTING_DEVICE_GESTURES_SCROLL_ENABLE
|
||||
|
||||
|
@ -42,6 +42,9 @@
|
||||
"twinkle": true
|
||||
}
|
||||
},
|
||||
"tapping": {
|
||||
"term": 0
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "B5"
|
||||
},
|
||||
|
@ -18,9 +18,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#pragma once
|
||||
|
||||
/* define tapping term */
|
||||
#define TAPPING_TERM 120
|
||||
|
||||
#define AUDIO_PIN C6
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
|
@ -20,6 +20,9 @@
|
||||
"split": {
|
||||
"soft_serial_pin": "D0"
|
||||
},
|
||||
"tapping": {
|
||||
"term": 120
|
||||
},
|
||||
"rgblight": {
|
||||
"led_count": 20,
|
||||
"split_count": [10, 10]
|
||||
|
@ -18,9 +18,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#pragma once
|
||||
|
||||
/* define tapping term */
|
||||
#define TAPPING_TERM 120
|
||||
|
||||
#define AUDIO_PIN C6
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
|
@ -20,6 +20,9 @@
|
||||
"split": {
|
||||
"soft_serial_pin": "D0"
|
||||
},
|
||||
"tapping": {
|
||||
"term": 120
|
||||
},
|
||||
"rgblight": {
|
||||
"led_count": 24,
|
||||
"led_map": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12],
|
||||
|
@ -16,9 +16,6 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
/* define tapping term */
|
||||
#define TAPPING_TERM 120
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
|
@ -16,6 +16,9 @@
|
||||
"split": {
|
||||
"soft_serial_pin": "D2"
|
||||
},
|
||||
"tapping": {
|
||||
"term": 120
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "D3"
|
||||
},
|
||||
|
@ -16,9 +16,6 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
/* define tapping term */
|
||||
#define TAPPING_TERM 120
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
|
@ -16,6 +16,9 @@
|
||||
"split": {
|
||||
"soft_serial_pin": "D2"
|
||||
},
|
||||
"tapping": {
|
||||
"term": 120
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "D3"
|
||||
},
|
||||
|
@ -16,9 +16,6 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
/* define tapping term */
|
||||
#define TAPPING_TERM 120
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
|
@ -16,6 +16,9 @@
|
||||
"split": {
|
||||
"soft_serial_pin": "D2"
|
||||
},
|
||||
"tapping": {
|
||||
"term": 120
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "D3"
|
||||
},
|
||||
|
@ -16,9 +16,6 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
/* define tapping term */
|
||||
#define TAPPING_TERM 120
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
|
@ -16,6 +16,9 @@
|
||||
"split": {
|
||||
"soft_serial_pin": "D2"
|
||||
},
|
||||
"tapping": {
|
||||
"term": 120
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "D3"
|
||||
},
|
||||
|
@ -16,9 +16,6 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
/* define tapping term */
|
||||
#define TAPPING_TERM 120
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
|
@ -16,6 +16,9 @@
|
||||
"split": {
|
||||
"soft_serial_pin": "D2"
|
||||
},
|
||||
"tapping": {
|
||||
"term": 120
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "D3"
|
||||
},
|
||||
|
@ -16,9 +16,6 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
/* define tapping term */
|
||||
#define TAPPING_TERM 120
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
|
@ -16,6 +16,9 @@
|
||||
"split": {
|
||||
"soft_serial_pin": "D2"
|
||||
},
|
||||
"tapping": {
|
||||
"term": 120
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "D3"
|
||||
},
|
||||
|
@ -16,9 +16,6 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
/* define tapping term */
|
||||
#define TAPPING_TERM 120
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
|
@ -16,6 +16,9 @@
|
||||
"split": {
|
||||
"soft_serial_pin": "D2"
|
||||
},
|
||||
"tapping": {
|
||||
"term": 120
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "D3"
|
||||
},
|
||||
|
@ -16,9 +16,6 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
/* define tapping term */
|
||||
#define TAPPING_TERM 120
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
|
@ -19,6 +19,9 @@
|
||||
"split": {
|
||||
"soft_serial_pin": "D2"
|
||||
},
|
||||
"tapping": {
|
||||
"term": 120
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "D3"
|
||||
},
|
||||
|
@ -16,9 +16,6 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
/* define tapping term */
|
||||
#define TAPPING_TERM 120
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
|
@ -16,6 +16,9 @@
|
||||
"split": {
|
||||
"soft_serial_pin": "D2"
|
||||
},
|
||||
"tapping": {
|
||||
"term": 120
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "D3"
|
||||
},
|
||||
|
@ -16,9 +16,6 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
/* define tapping term */
|
||||
#define TAPPING_TERM 120
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
|
@ -16,6 +16,9 @@
|
||||
"split": {
|
||||
"soft_serial_pin": "D2"
|
||||
},
|
||||
"tapping": {
|
||||
"term": 120
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "D3"
|
||||
},
|
||||
|
@ -18,9 +18,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
#define TAPPING_TERM 150
|
||||
|
||||
#define EE_HANDS
|
||||
|
||||
#ifdef IOS_DEVICE_ENABLE
|
||||
|
@ -24,6 +24,9 @@
|
||||
"split": {
|
||||
"soft_serial_pin": "D3"
|
||||
},
|
||||
"tapping": {
|
||||
"term": 150
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "B3"
|
||||
},
|
||||
|
@ -19,6 +19,9 @@
|
||||
"split": {
|
||||
"soft_serial_pin": "D3"
|
||||
},
|
||||
"tapping": {
|
||||
"term": 150
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "B7"
|
||||
},
|
||||
|
@ -16,9 +16,6 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
#define TAPPING_TERM 400
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
|
@ -16,6 +16,9 @@
|
||||
"bootmagic": {
|
||||
"matrix": [1, 0]
|
||||
},
|
||||
"tapping": {
|
||||
"term": 400
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"bootloader": "caterina",
|
||||
"layouts": {
|
||||
|
@ -1,5 +1,3 @@
|
||||
#pragma once
|
||||
|
||||
#define TAPPING_TERM 100
|
||||
|
||||
#define TAP_CODE_DELAY 10
|
||||
|
@ -28,6 +28,9 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"tapping": {
|
||||
"term": 100
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"bootloader": "caterina",
|
||||
"layouts": {
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user