LP55231 driver

Revision:
1:4ab9f195e998
Parent:
0:4ff4e0b7f25c
Child:
2:79b94bf1cf59
diff -r 4ff4e0b7f25c -r 4ab9f195e998 LP55231.cpp
--- 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