RGB LED Driver demo

Dependents:   NJU6063_HelloWorld

Committer:
og
Date:
Sat Jan 09 07:39:52 2016 +0000
Revision:
1:bbc915c814da
Parent:
0:0283db13b7f1
Child:
2:137675ac48ab
add switch

Who changed what in which revision?

UserRevisionLine numberNew contents of line
og 0:0283db13b7f1 1 #include "NJU6063.h"
og 0:0283db13b7f1 2
og 0:0283db13b7f1 3 NJU6063::NJU6063( PinName sda, PinName scl, PinName rst)
og 0:0283db13b7f1 4 : _i2c(sda, scl), _rst(rst)
og 0:0283db13b7f1 5 {
og 0:0283db13b7f1 6 }
og 0:0283db13b7f1 7
og 0:0283db13b7f1 8 void NJU6063::reset(void)
og 0:0283db13b7f1 9 {
og 0:0283db13b7f1 10 wait_ms(100);
og 0:0283db13b7f1 11 _rst = 0;
og 0:0283db13b7f1 12 wait_ms(100);
og 0:0283db13b7f1 13 _rst = 1;
og 0:0283db13b7f1 14 }
og 0:0283db13b7f1 15
og 0:0283db13b7f1 16 void NJU6063::set_multi_device(uint8_t n)
og 0:0283db13b7f1 17 {
og 0:0283db13b7f1 18 char data[3];
og 0:0283db13b7f1 19 data[0] = 0x00; // Initial chip addres
og 0:0283db13b7f1 20 data[1] = 0x0d; // multi device address
og 0:0283db13b7f1 21 for (uint8_t i=1; i<=n; i++) {
og 0:0283db13b7f1 22 data[2] = i;
og 0:0283db13b7f1 23 _i2c.write(NJU6063_SLAVE, data, 3);
og 0:0283db13b7f1 24 }
og 0:0283db13b7f1 25 }
og 0:0283db13b7f1 26 void NJU6063::init(uint8_t chip_addr, uint8_t d)
og 0:0283db13b7f1 27 {
og 0:0283db13b7f1 28 char data[3];
og 0:0283db13b7f1 29 data[0] = chip_addr;
og 0:0283db13b7f1 30 data[1] = 0x00;
og 0:0283db13b7f1 31 data[2] = d;
og 0:0283db13b7f1 32 _i2c.write(NJU6063_SLAVE, data, 3);
og 0:0283db13b7f1 33 }
og 0:0283db13b7f1 34
og 0:0283db13b7f1 35 void NJU6063::set_iled(uint8_t chip_addr, uint8_t d1, uint8_t d2, uint8_t d3)
og 0:0283db13b7f1 36 {
og 0:0283db13b7f1 37 char data[3];
og 0:0283db13b7f1 38 data[0] = chip_addr;
og 0:0283db13b7f1 39 data[1] = 0x01;
og 0:0283db13b7f1 40 data[2] = (0x03&d1) | (0x03&d2)<<2 | (0x03&d3) <<4;
og 0:0283db13b7f1 41 _i2c.write(NJU6063_SLAVE, data, 3);
og 0:0283db13b7f1 42 }
og 0:0283db13b7f1 43
og 0:0283db13b7f1 44 void NJU6063::set_pwm(uint8_t chip_addr, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t loop, uint8_t son)
og 0:0283db13b7f1 45 {
og 0:0283db13b7f1 46 char data[7];
og 0:0283db13b7f1 47 data[0] = chip_addr;
og 0:0283db13b7f1 48 data[1] = 0x02;
og 0:0283db13b7f1 49 data[2] = d1;
og 0:0283db13b7f1 50 data[3] = d2;
og 0:0283db13b7f1 51 data[4] = d3;
og 0:0283db13b7f1 52 data[5] = loop;
og 0:0283db13b7f1 53 data[6] = son;
og 0:0283db13b7f1 54 _i2c.write(NJU6063_SLAVE, data, 7);
og 0:0283db13b7f1 55 }
og 0:0283db13b7f1 56 void NJU6063::dim_start(uint8_t chip_addr)
og 0:0283db13b7f1 57 {
og 0:0283db13b7f1 58 char data[3];
og 0:0283db13b7f1 59 data[0] = chip_addr;
og 0:0283db13b7f1 60 data[1] = 0x07; // reg addres
og 0:0283db13b7f1 61 data[2] = 0x01; // start
og 0:0283db13b7f1 62 _i2c.write(NJU6063_SLAVE, data, 3);
og 0:0283db13b7f1 63 }
og 0:0283db13b7f1 64
og 1:bbc915c814da 65 void NJU6063::dim_stop(uint8_t chip_addr)
og 1:bbc915c814da 66 {
og 1:bbc915c814da 67 char data[3];
og 1:bbc915c814da 68 data[0] = chip_addr;
og 1:bbc915c814da 69 data[1] = 0x07; // reg addres
og 1:bbc915c814da 70 data[2] = 0x02; // stop
og 1:bbc915c814da 71 _i2c.write(NJU6063_SLAVE, data, 3);
og 1:bbc915c814da 72 }
og 1:bbc915c814da 73
og 1:bbc915c814da 74 void NJU6063::check_dim(void)
og 0:0283db13b7f1 75 {
og 0:0283db13b7f1 76 uint8_t ACK;
og 0:0283db13b7f1 77 char data[3];
og 0:0283db13b7f1 78 data[0] = 0xff;
og 0:0283db13b7f1 79 data[1] = 0x0b;
og 0:0283db13b7f1 80 data[2] = 0x00;
og 0:0283db13b7f1 81 do {
og 0:0283db13b7f1 82 ACK = _i2c.write(NJU6063_SLAVE, data, 3);
og 0:0283db13b7f1 83 } while(!ACK);
og 0:0283db13b7f1 84 }