LP55231 driver
Diff: LP55231.cpp
- Revision:
- 1:4ab9f195e998
- Parent:
- 0:4ff4e0b7f25c
- Child:
- 2:79b94bf1cf59
--- a/LP55231.cpp Wed Aug 22 06:32:51 2018 +0000 +++ b/LP55231.cpp Wed Aug 22 08:59:37 2018 +0000 @@ -1,4 +1,5 @@ #include "LP55231.h" +#include "main.h" LP55231::LP55231(PinName sda, PinName scl, uint8_t addr) : m_i2c(sda, scl), m_addr(addr) {} @@ -14,14 +15,39 @@ }; -void LP55231::LP55231_SetLed(uint8_t led, uint8_t brightness) +void LP55231::LP55231_SetLed(LP55231_leds led, LP55231_colors color) { - SetRegister(REG_D7_PWM, brightness); /* RED1 */ - SetRegister(REG_D1_PWM, brightness); /* GREEN1 */ - SetRegister(REG_D2_PWM, brightness); /* BLUE1 */ + switch(led) + { + case LP55231_LED1: + { + SetRegister(REG_D7_PWM, color.red); /* RED1 */ + SetRegister(REG_D1_PWM, color.green); /* GREEN1 */ + SetRegister(REG_D2_PWM, color.blue); /* BLUE1 */ + break; + } + case LP55231_LED2: + { + SetRegister(REG_D8_PWM, color.red); /* RED2 */ + SetRegister(REG_D3_PWM, color.green); /* GREEN2 */ + SetRegister(REG_D4_PWM, color.blue); /* BLUE2 */ + break; + } + case LP55231_LED3: + { + SetRegister(REG_D9_PWM, color.red); /* RED3 */ + SetRegister(REG_D5_PWM, color.green); /* GREEN3 */ + SetRegister(REG_D6_PWM, color.blue); /* BLUE3 */ + break; + } + default: + { + ASSERT(0); + break; + } + } } - // --- Private Functions --- // void LP55231::SetRegister(uint8_t registerAddr, uint8_t data) @@ -29,5 +55,5 @@ char data_write[2]; data_write[0] = registerAddr; data_write[1] = data; - m_i2c.write(m_addr, data_write, 3); + m_i2c.write(m_addr, data_write, 2); } \ No newline at end of file