Get rid of ledsBuffer in favor of led_driver_state_t.frames
This commit is contained in:
@@ -1,6 +1,5 @@
|
|||||||
#include "slave_drivers/slave_driver_led_driver.h"
|
#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_RIGHT,
|
||||||
@@ -87,7 +86,7 @@ void LedSlaveDriver_Update(uint8_t ledDriverId) {
|
|||||||
break;
|
break;
|
||||||
case LedDriverPhase_Initialized:
|
case LedDriverPhase_Initialized:
|
||||||
updatePwmRegistersBuffer[0] = FRAME_REGISTER_PWM_FIRST + *ledIndex;
|
updatePwmRegistersBuffer[0] = FRAME_REGISTER_PWM_FIRST + *ledIndex;
|
||||||
memcpy(updatePwmRegistersBuffer+1, ledsBuffer + *ledIndex, PMW_REGISTER_UPDATE_CHUNK_SIZE);
|
memcpy(updatePwmRegistersBuffer+1, currentLedDriverState->frames + *ledIndex, PMW_REGISTER_UPDATE_CHUNK_SIZE);
|
||||||
I2cAsyncWrite(ledDriverAddress, updatePwmRegistersBuffer, PWM_REGISTER_BUFFER_LENGTH);
|
I2cAsyncWrite(ledDriverAddress, updatePwmRegistersBuffer, PWM_REGISTER_BUFFER_LENGTH);
|
||||||
*ledIndex += PMW_REGISTER_UPDATE_CHUNK_SIZE;
|
*ledIndex += PMW_REGISTER_UPDATE_CHUNK_SIZE;
|
||||||
if (*ledIndex >= LED_DRIVER_LED_COUNT) {
|
if (*ledIndex >= LED_DRIVER_LED_COUNT) {
|
||||||
@@ -99,5 +98,7 @@ void LedSlaveDriver_Update(uint8_t ledDriverId) {
|
|||||||
|
|
||||||
void SetLeds(uint8_t ledBrightness)
|
void SetLeds(uint8_t ledBrightness)
|
||||||
{
|
{
|
||||||
memset(ledsBuffer+1, ledBrightness, LED_DRIVER_LED_COUNT);
|
for (uint8_t i=0; i<LED_DRIVER_MAX_COUNT; i++) {
|
||||||
|
memset(&ledDriverStates[i].frames, ledBrightness, LED_DRIVER_LED_COUNT);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user