Library which provides functions to control a TAOS TSL2561 Light-To-Digital Converter via I2C.

Dependents:   TweetTest NetworkThermometer GR-PEACH_TAMORI mDot_LoRa_Connect_ABPA_Lux ... more

Committer:
karlmaxwell67
Date:
Fri Mar 21 17:38:11 2014 +0000
Revision:
4:5d1f8d7d81ff
Parent:
3:6a89ac4a1979
Added isPowerEnabled, isRGBCEnabled etc. and roundTowardsZero which is used in setWaitTime and setIntegrationTime

Who changed what in which revision?

UserRevisionLine numberNew contents of line
karlmaxwell67 0:453a43c8bf2b 1 #ifndef TCS3472_I2C_H
karlmaxwell67 0:453a43c8bf2b 2 #define TCS3472_I2C_H
karlmaxwell67 0:453a43c8bf2b 3 #include "mbed.h"
karlmaxwell67 0:453a43c8bf2b 4
karlmaxwell67 1:70d7d9f1af01 5 //Defines
karlmaxwell67 1:70d7d9f1af01 6 #define SLAVE_ADDRESS 0x29
karlmaxwell67 2:38d5187a4e7b 7
karlmaxwell67 3:6a89ac4a1979 8 #define ENABLE 0x00
karlmaxwell67 2:38d5187a4e7b 9 #define ATIME 0x01
karlmaxwell67 2:38d5187a4e7b 10 #define WTIME 0x03
karlmaxwell67 3:6a89ac4a1979 11 #define AILTL 0x04
karlmaxwell67 3:6a89ac4a1979 12 #define AIHTL 0x06
karlmaxwell67 3:6a89ac4a1979 13 #define PERS 0x0C
karlmaxwell67 3:6a89ac4a1979 14 #define CONFIG 0x0D
karlmaxwell67 3:6a89ac4a1979 15 #define CONTROL 0x0F
karlmaxwell67 3:6a89ac4a1979 16 #define ID 0x12
karlmaxwell67 3:6a89ac4a1979 17 #define STATUS 0x13
karlmaxwell67 1:70d7d9f1af01 18 #define CDATA 0x14
karlmaxwell67 1:70d7d9f1af01 19 #define RDATA 0x16
karlmaxwell67 1:70d7d9f1af01 20 #define GDATA 0x18
karlmaxwell67 1:70d7d9f1af01 21 #define BDATA 0x1A
karlmaxwell67 1:70d7d9f1af01 22
karlmaxwell67 0:453a43c8bf2b 23 class TCS3472_I2C {
karlmaxwell67 0:453a43c8bf2b 24 public:
karlmaxwell67 0:453a43c8bf2b 25 TCS3472_I2C( PinName sda, PinName scl );
karlmaxwell67 1:70d7d9f1af01 26
karlmaxwell67 1:70d7d9f1af01 27 int getAllColours( int* readings );
karlmaxwell67 1:70d7d9f1af01 28 int getClearData();
karlmaxwell67 1:70d7d9f1af01 29 int getRedData();
karlmaxwell67 1:70d7d9f1af01 30 int getGreenData();
karlmaxwell67 1:70d7d9f1af01 31 int getBlueData();
karlmaxwell67 3:6a89ac4a1979 32
karlmaxwell67 3:6a89ac4a1979 33 int enablePower();
karlmaxwell67 3:6a89ac4a1979 34 int disablePower();
karlmaxwell67 4:5d1f8d7d81ff 35 bool isPowerEnabled();
karlmaxwell67 3:6a89ac4a1979 36 int enableRGBC();
karlmaxwell67 3:6a89ac4a1979 37 int disableRGBC();
karlmaxwell67 4:5d1f8d7d81ff 38 bool isRGBCEnabled();
karlmaxwell67 3:6a89ac4a1979 39 int enablePowerAndRGBC();
karlmaxwell67 3:6a89ac4a1979 40 int disablePowerAndRGBC();
karlmaxwell67 2:38d5187a4e7b 41 int enableWait();
karlmaxwell67 2:38d5187a4e7b 42 int disableWait();
karlmaxwell67 4:5d1f8d7d81ff 43 bool isWaitEnabled();
karlmaxwell67 2:38d5187a4e7b 44 int enableInterrupt();
karlmaxwell67 2:38d5187a4e7b 45 int disableInterrupt();
karlmaxwell67 4:5d1f8d7d81ff 46 bool isInterruptEnabled();
karlmaxwell67 4:5d1f8d7d81ff 47
karlmaxwell67 2:38d5187a4e7b 48 int setWaitTime( const float wtime ); // wtime (in ms) should be in the range 2.4 - 7400ms.
karlmaxwell67 4:5d1f8d7d81ff 49 float readWaitTime();
karlmaxwell67 3:6a89ac4a1979 50 int setIntegrationTime( const float itime ); // itime (in ms) should be in the range 2.4 - 614.4ms.
karlmaxwell67 4:5d1f8d7d81ff 51 float readIntegrationTime();
karlmaxwell67 3:6a89ac4a1979 52
karlmaxwell67 3:6a89ac4a1979 53 char readEnableRegister();
karlmaxwell67 3:6a89ac4a1979 54 int readLowInterruptThreshold();
karlmaxwell67 3:6a89ac4a1979 55 int readHighInterruptThreshold();
karlmaxwell67 3:6a89ac4a1979 56 int setLowInterruptThreshold( const int threshold );
karlmaxwell67 3:6a89ac4a1979 57 int setHighInterruptThreshold( const int threshold );
karlmaxwell67 3:6a89ac4a1979 58 int readInterruptPersistence();
karlmaxwell67 3:6a89ac4a1979 59 int setInterruptPersistence( const int persistence ); // persistence must be 0, 1, 2, 3, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55 or 60
karlmaxwell67 3:6a89ac4a1979 60 int clearInterrupt();
karlmaxwell67 3:6a89ac4a1979 61 int readRGBCGain();
karlmaxwell67 3:6a89ac4a1979 62 int setRGBCGain( const int gain ); // gain must be 1, 4, 16 or 60
karlmaxwell67 3:6a89ac4a1979 63 char getDeviceID();
karlmaxwell67 3:6a89ac4a1979 64 char readStatusRegister();
karlmaxwell67 0:453a43c8bf2b 65
karlmaxwell67 0:453a43c8bf2b 66 private:
karlmaxwell67 3:6a89ac4a1979 67 I2C i2c;
karlmaxwell67 1:70d7d9f1af01 68
karlmaxwell67 1:70d7d9f1af01 69 int writeSingleRegister( char address, char data );
karlmaxwell67 3:6a89ac4a1979 70 int writeMultipleRegisters( char address, char* data, int quantity );
karlmaxwell67 1:70d7d9f1af01 71 char readSingleRegister( char address );
karlmaxwell67 1:70d7d9f1af01 72 int readMultipleRegisters( char address, char* output, int quantity );
karlmaxwell67 4:5d1f8d7d81ff 73
karlmaxwell67 4:5d1f8d7d81ff 74 float roundTowardsZero( const float value );
karlmaxwell67 0:453a43c8bf2b 75 };
karlmaxwell67 0:453a43c8bf2b 76
karlmaxwell67 1:70d7d9f1af01 77 #endif