Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: NJU6063_HelloWorld
NJU6063.cpp
00001 #include "NJU6063.h" 00002 //#ifndef TARGET_STM 00003 NJU6063::NJU6063( PinName sda, PinName scl, PinName rst) 00004 : _i2c(sda, scl), _rst(rst) 00005 { 00006 //_i2c.frequency(400000); 00007 } 00008 00009 void NJU6063::reset(void) 00010 { 00011 NJU6063_WAIT_MS; 00012 _rst = 0; 00013 NJU6063_WAIT_MS; 00014 _rst = 1; 00015 } 00016 00017 uint8_t NJU6063::set_multi_device(uint8_t n) 00018 { 00019 //_myI2c = (I2C_TypeDef*)I2C_1; 00020 //IS_I2C_NO_STRETCH(I2C_NOSTRETCH_ENABLE); 00021 uint8_t ret; 00022 char data[3]; 00023 ret = n; 00024 data[0] = 0x00; // Initial chip addres 00025 data[1] = NJU6063_MADRES; // multi device address 00026 #ifdef TARGET_NUCLEO_F042K6 00027 for (uint8_t i=1; i<=n; i++) { 00028 data[2] = i; 00029 ack= _i2c.write(NJU6063_SLAVE, data, 2); 00030 NJU6063_WAIT; 00031 if (ack) { 00032 ret = i-1; 00033 break; 00034 } 00035 else { 00036 ack= _i2c.write(NJU6063_SLAVE, data, 3); 00037 } 00038 } 00039 #else 00040 for (uint8_t i=1; i<=n; i++) { 00041 data[2] = i; 00042 ack= _i2c.write(NJU6063_SLAVE, data, 3); 00043 NJU6063_WAIT; 00044 if (ack) { 00045 ret = i-1; 00046 break; 00047 } 00048 } 00049 #endif 00050 return(ret); 00051 } 00052 void NJU6063::init(uint8_t chip_addr, uint8_t d) 00053 { 00054 char data[3]; 00055 data[0] = chip_addr; 00056 data[1] = NJU6063_INIT; 00057 data[2] = d; 00058 ack = _i2c.write(NJU6063_SLAVE, data, 3); 00059 NJU6063_WAIT; 00060 } 00061 00062 void NJU6063::set_iled(uint8_t chip_addr, uint8_t d1, uint8_t d2, uint8_t d3) 00063 { 00064 char data[3]; 00065 data[0] = chip_addr; 00066 data[1] = NJU6063_ILED; 00067 data[2] = (0x03&d1) | (0x03&d2)<<2 | (0x03&d3) <<4; 00068 ack = _i2c.write(NJU6063_SLAVE, data, 3); 00069 NJU6063_WAIT; 00070 } 00071 00072 void NJU6063::set_pwm(uint8_t chip_addr, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t loop, uint8_t son) 00073 { 00074 char data[7]; 00075 data[0] = chip_addr; 00076 data[1] = NJU6063_PWM1; 00077 data[2] = d1; 00078 data[3] = d2; 00079 data[4] = d3; 00080 data[5] = loop; 00081 data[6] = son; 00082 ack = _i2c.write(NJU6063_SLAVE, data, 7); 00083 NJU6063_WAIT; 00084 } 00085 void NJU6063::dim_start(uint8_t chip_addr) 00086 { 00087 char data[3]; 00088 data[0] = chip_addr; 00089 data[1] = NJU6063_START; // reg addres 00090 data[2] = 0x01; // start 00091 ack = _i2c.write(NJU6063_SLAVE, data, 3); 00092 NJU6063_WAIT; 00093 } 00094 00095 void NJU6063::dim_stop(uint8_t chip_addr) 00096 { 00097 char data[3]; 00098 data[0] = chip_addr; 00099 data[1] = NJU6063_START; // reg addres 00100 data[2] = 0x02; // stop 00101 ack = _i2c.write(NJU6063_SLAVE, data, 3); 00102 NJU6063_WAIT; 00103 } 00104 00105 void NJU6063::check_dim(void) 00106 { 00107 uint8_t timeout = 0x0f; 00108 char data[3]; 00109 data[0] = 0xff; 00110 data[1] = NJU6063_DCHK; 00111 data[2] = 0x00; 00112 do { 00113 ack = _i2c.write(NJU6063_SLAVE, data, 3, true); 00114 NJU6063_WAIT; 00115 timeout--; 00116 if (timeout==0) break; 00117 } while(!ack); 00118 NJU6063_WAIT_MS; 00119 } 00120 //#endif 00121
Generated on Tue Jul 19 2022 00:28:04 by
1.7.2