diff options
author | Vlad K <vkvitnevski@gmail.com> | 2021-11-01 15:04:37 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-02 09:04:37 +1100 |
commit | a29ca1e7f1a5addfde163b158399684505453fc9 (patch) | |
tree | 3a98dc034d034c4a5e8a30b1e744d7793ecbc00b /docs/feature_led_matrix.md | |
parent | 7f8faa429e0c0662cec34a7d60e33ca58333d6d7 (diff) | |
download | qmk_firmware-a29ca1e7f1a5addfde163b158399684505453fc9.tar.gz qmk_firmware-a29ca1e7f1a5addfde163b158399684505453fc9.zip |
Add support for ISSI drivers on both sides of a split keyboard (#13842)
* Gets RGB working on a split keyboard with IS31FL3733. Currently needs small tweak to re-enable WS2812
* Added helper function
* Trying to integrate the function
* Moved functionality into a macro
* Swapped conditional for a macro everywhere
* Tidying up
* More code cleanup
* Documentation updates
* Fixed formatting via linter
* Switching to a function from a macro
* Fixed compile error
* Fixing WS2812 behavior. UNTESTED.
* Updated documentation about the driver addresses.
* Fixed code for WS2812
* Trying to add in LED_MATRIX support
* Updated effects for LED matrix
* Updated third-party effect defines.
* Ran format-c on modified files
* Apply suggestions from code review
Co-authored-by: Ryan <fauxpark@gmail.com>
* Move to static inline. Avoids issues with gcc v8+
* Move helper function for LED_matrix to static inline to avoid issues with gcc v8+
Co-authored-by: Vlad Kvitnevskiy <vladkvit@outlook.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Diffstat (limited to 'docs/feature_led_matrix.md')
-rw-r--r-- | docs/feature_led_matrix.md | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/docs/feature_led_matrix.md b/docs/feature_led_matrix.md index ed92bffd9..d4b20b9aa 100644 --- a/docs/feature_led_matrix.md +++ b/docs/feature_led_matrix.md | |||
@@ -49,6 +49,8 @@ Here is an example using 2 drivers. | |||
49 | 49 | ||
50 | !> Note the parentheses, this is so when `LED_DRIVER_LED_TOTAL` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL)` will give very different results than `rand() % LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL`. | 50 | !> Note the parentheses, this is so when `LED_DRIVER_LED_TOTAL` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL)` will give very different results than `rand() % LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL`. |
51 | 51 | ||
52 | For split keyboards using `LED_MATRIX_SPLIT` with an LED driver, you can either have the same driver address or different driver addresses. If using different addresses, use `DRIVER_ADDR_1` for one and `DRIVER_ADDR_2` for the other one. Then, in `g_is31_leds`, fill out the correct driver index (0 or 1). If using one address, use `DRIVER_ADDR_1` for both, and use index 0 for `g_is31_leds`. | ||
53 | |||
52 | Define these arrays listing all the LEDs in your `<keyboard>.c`: | 54 | Define these arrays listing all the LEDs in your `<keyboard>.c`: |
53 | 55 | ||
54 | ```c | 56 | ```c |
@@ -219,7 +221,7 @@ static bool my_cool_effect(effect_params_t* params) { | |||
219 | for (uint8_t i = led_min; i < led_max; i++) { | 221 | for (uint8_t i = led_min; i < led_max; i++) { |
220 | led_matrix_set_value(i, 0xFF); | 222 | led_matrix_set_value(i, 0xFF); |
221 | } | 223 | } |
222 | return led_max < DRIVER_LED_TOTAL; | 224 | return led_matrix_check_finished_leds(led_max); |
223 | } | 225 | } |
224 | 226 | ||
225 | // e.g: A more complex effect, relying on external methods and state, with | 227 | // e.g: A more complex effect, relying on external methods and state, with |
@@ -233,8 +235,7 @@ static bool my_cool_effect2_complex_run(effect_params_t* params) { | |||
233 | for (uint8_t i = led_min; i < led_max; i++) { | 235 | for (uint8_t i = led_min; i < led_max; i++) { |
234 | led_matrix_set_value(i, some_global_state++); | 236 | led_matrix_set_value(i, some_global_state++); |
235 | } | 237 | } |
236 | 238 | return led_matrix_check_finished_leds(led_max); | |
237 | return led_max < DRIVER_LED_TOTAL; | ||
238 | } | 239 | } |
239 | static bool my_cool_effect2(effect_params_t* params) { | 240 | static bool my_cool_effect2(effect_params_t* params) { |
240 | if (params->init) my_cool_effect2_complex_init(params); | 241 | if (params->init) my_cool_effect2_complex_init(params); |