MAX44008 RGB Color, Infrared, and Temperature Sensor

Dependents:   test_MAX44008 testSensor

Committer:
Rhyme
Date:
Wed Dec 07 05:13:02 2016 +0000
Revision:
2:e4631b2273f8
Parent:
0:7d913e68a6d7
Initial commit, skeleton is working

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Rhyme 0:7d913e68a6d7 1 /**
Rhyme 0:7d913e68a6d7 2 * MAX44008 RGB Color, Infrared,
Rhyme 0:7d913e68a6d7 3 * and Temperature Sensor
Rhyme 0:7d913e68a6d7 4 * I2C 7bit address: 0x40 (A0 = 1) 0x41 (A0 = 0)
Rhyme 0:7d913e68a6d7 5 */
Rhyme 0:7d913e68a6d7 6
Rhyme 0:7d913e68a6d7 7 #ifndef _MAX44008_H_
Rhyme 0:7d913e68a6d7 8 #define _MAX44008_H_
Rhyme 0:7d913e68a6d7 9
Rhyme 0:7d913e68a6d7 10 #include "mbed.h"
Rhyme 0:7d913e68a6d7 11
Rhyme 0:7d913e68a6d7 12 class MAX44008
Rhyme 0:7d913e68a6d7 13 {
Rhyme 0:7d913e68a6d7 14 public:
Rhyme 0:7d913e68a6d7 15 /**
Rhyme 0:7d913e68a6d7 16 * MAX44008 constructor
Rhyme 0:7d913e68a6d7 17 *
Rhyme 0:7d913e68a6d7 18 * @param sda SDA pin
Rhyme 0:7d913e68a6d7 19 * @param scl SCL pin
Rhyme 0:7d913e68a6d7 20 * @param addr address of the I2C peripheral
Rhyme 0:7d913e68a6d7 21 */
Rhyme 0:7d913e68a6d7 22 MAX44008(PinName sda, PinName scl, int addr) ;
Rhyme 0:7d913e68a6d7 23
Rhyme 0:7d913e68a6d7 24 ~MAX44008() ;
Rhyme 0:7d913e68a6d7 25
Rhyme 0:7d913e68a6d7 26 /*
Rhyme 0:7d913e68a6d7 27 * some member functions here (yet to be written)
Rhyme 0:7d913e68a6d7 28 */
Rhyme 0:7d913e68a6d7 29 int16_t getAMB_CLEAR(void) ;
Rhyme 0:7d913e68a6d7 30 int16_t getAMB_RED(void) ;
Rhyme 0:7d913e68a6d7 31 int16_t getAMB_GREEN(void) ;
Rhyme 0:7d913e68a6d7 32 int16_t getAMB_BLUE(void) ;
Rhyme 0:7d913e68a6d7 33 int16_t getIR(void) ;
Rhyme 0:7d913e68a6d7 34 int16_t getIRCOMP(void) ;
Rhyme 0:7d913e68a6d7 35 int16_t getTEMP(void) ;
Rhyme 0:7d913e68a6d7 36 uint8_t getIntStatus(void) ;
Rhyme 0:7d913e68a6d7 37 void setIntStatus(uint8_t newValue) ;
Rhyme 0:7d913e68a6d7 38 uint8_t getMainConfig(void) ;
Rhyme 0:7d913e68a6d7 39 void setMainConfig(uint8_t newConfig) ;
Rhyme 0:7d913e68a6d7 40 uint8_t getAMB_Config(void) ;
Rhyme 0:7d913e68a6d7 41 void setAMB_Config(uint8_t newConfig) ;
Rhyme 0:7d913e68a6d7 42 int16_t getAMB_UPTHR(void) ;
Rhyme 0:7d913e68a6d7 43 void setAMB_UPTHR(int16_t newTHR) ;
Rhyme 0:7d913e68a6d7 44 int16_t getAMB_LOTHR(void) ;
Rhyme 0:7d913e68a6d7 45 void setAMB_LOTHR(int16_t newTHR) ;
Rhyme 0:7d913e68a6d7 46 uint8_t getAMB_PST(void) ;
Rhyme 0:7d913e68a6d7 47 void setAMB_PST(uint8_t newValue) ;
Rhyme 0:7d913e68a6d7 48 /* Ambient ADC Gains */
Rhyme 0:7d913e68a6d7 49 uint8_t getTRIM_GAIN_CLEAR(void) ;
Rhyme 0:7d913e68a6d7 50 void setTRIM_GAIN_CLEAR(uint8_t newValue) ;
Rhyme 0:7d913e68a6d7 51 uint8_t getTRIM_GAIN_RED(void) ;
Rhyme 0:7d913e68a6d7 52 void setTRIM_GAIN_RED(uint8_t newValue) ;
Rhyme 0:7d913e68a6d7 53 uint8_t getTRIM_GAIN_GREEN(void) ;
Rhyme 0:7d913e68a6d7 54 void setTRIM_GAIN_GREEN(uint8_t newValue) ;
Rhyme 0:7d913e68a6d7 55 uint8_t getTRIM_GAIN_BLUE(void) ;
Rhyme 0:7d913e68a6d7 56 void setTRIM_GAIN_BLUE(uint8_t newValue) ;
Rhyme 0:7d913e68a6d7 57 uint8_t getTRIM_GAIN_IR(void) ;
Rhyme 0:7d913e68a6d7 58 void setTRIM_GAIN_IR(uint8_t newValue) ;
Rhyme 0:7d913e68a6d7 59
Rhyme 0:7d913e68a6d7 60 void enableTRIM(void) ;
Rhyme 0:7d913e68a6d7 61 void disableTRIM(void) ;
Rhyme 0:7d913e68a6d7 62 void enableCOMP(void) ;
Rhyme 0:7d913e68a6d7 63 void disableCOMP(void) ;
Rhyme 0:7d913e68a6d7 64 void enableTEMP(void) ;
Rhyme 0:7d913e68a6d7 65 void disableTEMP(void) ;
Rhyme 0:7d913e68a6d7 66 void enableAMBINT(void) ;
Rhyme 0:7d913e68a6d7 67 void disableAMBINT(void) ;
Rhyme 0:7d913e68a6d7 68 void selectAMBINT(uint8_t newChannel) ;
Rhyme 0:7d913e68a6d7 69 void setMode(uint8_t newMode) ;
Rhyme 2:e4631b2273f8 70 void setRawMode(uint8_t newMode) ;
Rhyme 0:7d913e68a6d7 71
Rhyme 0:7d913e68a6d7 72 private:
Rhyme 0:7d913e68a6d7 73 I2C m_i2c;
Rhyme 0:7d913e68a6d7 74 int m_addr;
Rhyme 0:7d913e68a6d7 75 void readRegs(int addr, uint8_t *data, int len) ;
Rhyme 0:7d913e68a6d7 76 void writeRegs(uint8_t *data, int len) ;
Rhyme 0:7d913e68a6d7 77 } ;
Rhyme 0:7d913e68a6d7 78 #endif /* _MAX44008_H_ */