aboutsummaryrefslogtreecommitdiff
path: root/drivers/led/issi/is31fl3731-simple.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/led/issi/is31fl3731-simple.c')
-rw-r--r--drivers/led/issi/is31fl3731-simple.c6
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
195void IS31FL3731_set_value(int index, uint8_t value) { 195void 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
211void IS31FL3731_set_led_control_register(uint8_t index, bool value) { 212void 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;