diff --git a/right/src/slave_drivers/slave_driver_led_driver.c b/right/src/slave_drivers/slave_driver_led_driver.c index 9a1eb1e..2aec00a 100644 --- a/right/src/slave_drivers/slave_driver_led_driver.c +++ b/right/src/slave_drivers/slave_driver_led_driver.c @@ -1,7 +1,7 @@ #include "slave_drivers/slave_driver_led_driver.h" uint8_t ledsBuffer[BUFFER_SIZE] = {FRAME_REGISTER_PWM_FIRST}; -uint8_t ledDriverPhases[2] = {0}; +led_driver_state_t ledDriverStates[LED_DRIVER_MAX_COUNT]; uint8_t ledControlBufferLeft[] = { FRAME_REGISTER_LED_CONTROL_FIRST, @@ -57,7 +57,7 @@ void LedSlaveDriver_Init() { } void LedSlaveDriver_Update(uint8_t ledDriverId) { - uint8_t *ledDriverPhase = ledDriverPhases + ledDriverId; + uint8_t *ledDriverPhase = &ledDriverStates[ledDriverId].phase; uint8_t ledDriverAddress = ledDriverId ? I2C_ADDRESS_LED_DRIVER_LEFT : I2C_ADDRESS_LED_DRIVER_RIGHT; uint8_t *ledControlBuffer = ledDriverId ? ledControlBufferLeft : ledControlBufferRight; diff --git a/right/src/slave_drivers/slave_driver_led_driver.h b/right/src/slave_drivers/slave_driver_led_driver.h index 097984d..461233f 100644 --- a/right/src/slave_drivers/slave_driver_led_driver.h +++ b/right/src/slave_drivers/slave_driver_led_driver.h @@ -8,6 +8,7 @@ // Macros: + #define LED_DRIVER_MAX_COUNT 2 #define BUFFER_SIZE (LED_DRIVER_LED_COUNT + 1) // Typedefs: @@ -23,6 +24,7 @@ typedef struct { led_driver_phase_t phase; uint8_t frames[LED_DRIVER_LED_COUNT]; + uint8_t ledIndex; } led_driver_state_t; // Functions: