RGB LED Driver demo

Dependents:   NJU6063_HelloWorld

NJU6063.h

Committer:
og
Date:
2015-12-26
Revision:
0:0283db13b7f1
Child:
1:bbc915c814da

File content as of revision 0:0283db13b7f1:

/** @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