diff --git a/right/src/slave_drivers/slave_driver_led_driver.c b/right/src/slave_drivers/slave_driver_led_driver.c index 2aec00a..af21404 100644 --- a/right/src/slave_drivers/slave_driver_led_driver.c +++ b/right/src/slave_drivers/slave_driver_led_driver.c @@ -1,7 +1,14 @@ #include "slave_drivers/slave_driver_led_driver.h" uint8_t ledsBuffer[BUFFER_SIZE] = {FRAME_REGISTER_PWM_FIRST}; -led_driver_state_t ledDriverStates[LED_DRIVER_MAX_COUNT]; +led_driver_state_t ledDriverStates[LED_DRIVER_MAX_COUNT] = { + { + .i2cAddress = I2C_ADDRESS_LED_DRIVER_RIGHT + }, + { + .i2cAddress = I2C_ADDRESS_LED_DRIVER_LEFT + }, +}; uint8_t ledControlBufferLeft[] = { FRAME_REGISTER_LED_CONTROL_FIRST, @@ -58,7 +65,7 @@ void LedSlaveDriver_Init() { void LedSlaveDriver_Update(uint8_t ledDriverId) { uint8_t *ledDriverPhase = &ledDriverStates[ledDriverId].phase; - uint8_t ledDriverAddress = ledDriverId ? I2C_ADDRESS_LED_DRIVER_LEFT : I2C_ADDRESS_LED_DRIVER_RIGHT; + uint8_t ledDriverAddress = ledDriverStates[ledDriverId].i2cAddress; uint8_t *ledControlBuffer = ledDriverId ? ledControlBufferLeft : ledControlBufferRight; switch (*ledDriverPhase) { diff --git a/right/src/slave_drivers/slave_driver_led_driver.h b/right/src/slave_drivers/slave_driver_led_driver.h index 461233f..3868a1c 100644 --- a/right/src/slave_drivers/slave_driver_led_driver.h +++ b/right/src/slave_drivers/slave_driver_led_driver.h @@ -25,6 +25,7 @@ led_driver_phase_t phase; uint8_t frames[LED_DRIVER_LED_COUNT]; uint8_t ledIndex; + uint8_t i2cAddress; } led_driver_state_t; // Functions: