Basic library for the TCS34725, based off of several example programs and the Adafruit Arduino library
Dependents: MF_FUJIKO_BASE STEM_2019 STEM_2020
Diff: TCS34725.cpp
- Revision:
- 3:afb107db7994
- Parent:
- 2:cc2c0831a763
- Child:
- 4:41f1acad69e5
diff -r cc2c0831a763 -r afb107db7994 TCS34725.cpp --- a/TCS34725.cpp Wed Jan 25 19:25:28 2017 +0000 +++ b/TCS34725.cpp Wed Jan 25 20:17:57 2017 +0000 @@ -1,17 +1,15 @@ #include "TCS34725.h" -I2C i2c(SDA, SCL); +TCS34725::TCS34725() : i2c(SDA,SCL) {} +TCS34725::TCS34725(PinName i2c_sda, PinName i2c_scl) : i2c(i2c_sda,i2c_scl) {} -uint8_t t_intTime; -uint8_t t_gain; - -void i2cWrite8(uint8_t addr, char reg, char data){ +void TCS34725::i2cWrite8(uint8_t addr, char reg, char data){ char packet[2] = {reg | COMMAND_BIT ,data & 0xFF}; i2c.write(addr,packet,2,false); wait(0.01); } -uint8_t i2cRead8(uint8_t addr, char reg){ +uint8_t TCS34725::i2cRead8(uint8_t addr, char reg){ char packet[1] = {reg | COMMAND_BIT}; char data[1] = {0}; i2c.write(addr,packet,1, true); @@ -19,7 +17,7 @@ return (uint8_t)data[0]; } -uint16_t i2cRead16(uint8_t addr, char reg){ +uint16_t TCS34725::i2cRead16(uint8_t addr, char reg){ char packet[1] = {reg | COMMAND_BIT}; char data[2] = {0,0}; i2c.write(addr,packet,1, true); @@ -27,7 +25,7 @@ return ((uint16_t)data[1] << 8) | (uint16_t)data[0]; } -bool TCS34725_init(char intTime, char gain){ +bool TCS34725::init(char intTime, char gain){ i2c.frequency(400000); uint8_t id = i2cRead8(SENSOR_ADDR, TCS34725_ID); @@ -43,13 +41,13 @@ return true; } -void TCS34725_config(char intTime, char gain){ +void TCS34725::config(char intTime, char gain){ uint8_t reg = i2cRead8(SENSOR_ADDR, TCS34725_ENABLE); i2cWrite8(SENSOR_ADDR,TCS34725_ENABLE, reg | ~(TCS34725_ENABLE_PON | TCS34725_ENABLE_AEN)); - TCS34725_init(intTime,gain); + init(intTime,gain); } -void TCS34725_getColor(uint16_t *r, uint16_t *g, uint16_t *b, uint16_t *c){ +void TCS34725::getColor(uint16_t *r, uint16_t *g, uint16_t *b, uint16_t *c){ *c = i2cRead16(SENSOR_ADDR, TCS34725_CDATAL); *r = i2cRead16(SENSOR_ADDR, TCS34725_RDATAL); *g = i2cRead16(SENSOR_ADDR, TCS34725_GDATAL); @@ -76,7 +74,7 @@ } } -void TCS34725_DEBUG(Serial * deb){ +void TCS34725::DEBUG(Serial * deb){ deb->printf("ATIME:%d ENABLE:%d CONTROL:%d ID:%d\n", i2cRead8(SENSOR_ADDR, TCS34725_ATIME), i2cRead8(SENSOR_ADDR, TCS34725_ENABLE),