RGB LED Driver demo

Dependents:   NJU6063_HelloWorld

Revision:
0:0283db13b7f1
Child:
1:bbc915c814da
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/NJU6063.h	Sat Dec 26 13:19:46 2015 +0000
@@ -0,0 +1,61 @@
+/** @file NJU6063.h
+* @brief mbed library to use a NJU6063 RGB LED Driver
+* http://www.njr.com/semicon/products/NJU6063.html
+* interface: I2C
+*/
+#ifndef MBED_NJU6063_H
+#define MBED_NJU6063_H
+
+#include "mbed.h"
+#define NJU6063_SLAVE 0x40
+#define EN 0x01
+#define EXT 0x02
+#define FDX1 0x00
+#define FDX2 0x04
+#define FDX4 0x08
+#define FDX8 0x0C
+#define FC1000KHZ 0x00
+#define FC1300KHZ 0x10
+#define FC800KHZ 0x20
+#define FC2200KHZ 0x30
+#define DMGP 0x80
+#define DO1 0x40
+#define ILED1OFF 0x00
+#define ILED1X1  0x03
+#define ILED1X05 0x02
+#define ILED1X025 0x01
+#define ILED2OFF 0x00
+#define ILED2X1  0x0C
+#define ILED2X05 0x08
+#define ILED2X025 0x04
+#define ILED3OFF 0x00
+#define ILED3X1  0x30
+#define ILED3X05 0x20
+#define ILED3X025 0x10
+#define ALL 0xff
+
+#define DEFAULTINIT FC800KHZ|FDX8|EN
+
+/**
+* @param sda I2C-bus SDA pin
+* @param scl I2C-bus SCL pin
+* @param rst Digital Out
+*/
+class NJU6063
+{
+private:
+    I2C _i2c;
+    DigitalOut _rst;
+public:
+    NJU6063( PinName sda, PinName scl, PinName rst);
+    ~NJU6063() {};
+    void reset(void);
+    void set_multi_device(uint8_t n);
+    void init(uint8_t chip_addr, uint8_t d);
+    void set_iled(uint8_t chip_addr, uint8_t d1, uint8_t d2, uint8_t d3);
+    void set_pwm(uint8_t chip_addr, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t loop=0x5f, uint8_t son=0x00);
+    void dim_start(uint8_t chip_addr);
+    uint8_t check_dim(void);
+};
+
+#endif // MBED_NJU6063_H
\ No newline at end of file