diff options
Diffstat (limited to 'drivers/led/issi/is31fl3731-simple.c')
-rw-r--r-- | drivers/led/issi/is31fl3731-simple.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/led/issi/is31fl3731-simple.c b/drivers/led/issi/is31fl3731-simple.c index 9d28ea91d..f51e2e38a 100644 --- a/drivers/led/issi/is31fl3731-simple.c +++ b/drivers/led/issi/is31fl3731-simple.c | |||
@@ -193,8 +193,9 @@ void IS31FL3731_init(uint8_t addr) { | |||
193 | } | 193 | } |
194 | 194 | ||
195 | void IS31FL3731_set_value(int index, uint8_t value) { | 195 | void IS31FL3731_set_value(int index, uint8_t value) { |
196 | is31_led led; | ||
196 | if (index >= 0 && index < DRIVER_LED_TOTAL) { | 197 | if (index >= 0 && index < DRIVER_LED_TOTAL) { |
197 | is31_led led = g_is31_leds[index]; | 198 | memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); |
198 | 199 | ||
199 | // Subtract 0x24 to get the second index of g_pwm_buffer | 200 | // Subtract 0x24 to get the second index of g_pwm_buffer |
200 | g_pwm_buffer[led.driver][led.v - 0x24] = value; | 201 | g_pwm_buffer[led.driver][led.v - 0x24] = value; |
@@ -209,7 +210,8 @@ void IS31FL3731_set_value_all(uint8_t value) { | |||
209 | } | 210 | } |
210 | 211 | ||
211 | void IS31FL3731_set_led_control_register(uint8_t index, bool value) { | 212 | void IS31FL3731_set_led_control_register(uint8_t index, bool value) { |
212 | is31_led led = g_is31_leds[index]; | 213 | is31_led led; |
214 | memcpy_P(&led, (&g_is31_leds[index]), sizeof(led)); | ||
213 | 215 | ||
214 | uint8_t control_register = (led.v - 0x24) / 8; | 216 | uint8_t control_register = (led.v - 0x24) / 8; |
215 | uint8_t bit_value = (led.v - 0x24) % 8; | 217 | uint8_t bit_value = (led.v - 0x24) % 8; |