diff --git a/right/src/slave_drivers/slave_driver_led_driver.c b/right/src/slave_drivers/slave_driver_led_driver.c index 50e1605..f49f681 100644 --- a/right/src/slave_drivers/slave_driver_led_driver.c +++ b/right/src/slave_drivers/slave_driver_led_driver.c @@ -54,6 +54,10 @@ uint8_t setFunctionFrameBuffer[] = {LED_DRIVER_REGISTER_FRAME, LED_DRIVER_FRAME_ uint8_t setShutdownModeNormalBuffer[] = {LED_DRIVER_REGISTER_SHUTDOWN, SHUTDOWN_MODE_NORMAL}; uint8_t setFrame1Buffer[] = {LED_DRIVER_REGISTER_FRAME, LED_DRIVER_FRAME_1}; +void InitLedSlaveDriver() { + SetLeds(0xff); +} + void UhkSlaveLedDriverHandler(uint8_t ledDriverId) { uint8_t *ledDriverState = ledDriverStates + ledDriverId; uint8_t ledDriverAddress = ledDriverId ? I2C_ADDRESS_LED_DRIVER_LEFT : I2C_ADDRESS_LED_DRIVER_RIGHT; diff --git a/right/src/slave_drivers/slave_driver_led_driver.h b/right/src/slave_drivers/slave_driver_led_driver.h index 0121b5e..969a12a 100644 --- a/right/src/slave_drivers/slave_driver_led_driver.h +++ b/right/src/slave_drivers/slave_driver_led_driver.h @@ -17,6 +17,7 @@ // Functions: + extern void InitLedSlaveDriver(); extern void UhkSlaveLedDriverHandler(uint8_t ledDriverId); extern void SetLeds(uint8_t ledBrightness); diff --git a/right/src/slave_scheduler.c b/right/src/slave_scheduler.c index a612b72..06d715d 100644 --- a/right/src/slave_scheduler.c +++ b/right/src/slave_scheduler.c @@ -10,6 +10,11 @@ uint8_t currentBridgeSlaveId = 0; +slave_driver_initializer_t slaveDriverInitializers[] = { + InitUhkModules, + InitLedSlaveDriver, +}; + uhk_slave_t slaves[] = { { .slaveHandler = UhkSlaveUhkModuleHandler, .moduleId = 0 }, { .slaveHandler = UhkSlaveLedDriverHandler, .moduleId = 0 }, @@ -31,10 +36,16 @@ static void bridgeProtocolCallback(I2C_Type *base, i2c_master_handle_t *handle, } } +static void initSlaveDrivers() +{ + for (uint8_t i=0; i