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:
Wed Mar 19 18:48:12 2014 +0000
Revision:
2:38d5187a4e7b
Parent:
1:70d7d9f1af01
Child:
3:6a89ac4a1979
Added functions setIntegrationTime, enableWait, disableWait, enableInterrupt, disableInterrupt and setWaitTime.

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 1:70d7d9f1af01 8 #define ENABLE_REGISTER 0x00
karlmaxwell67 2:38d5187a4e7b 9 #define ATIME 0x01
karlmaxwell67 2:38d5187a4e7b 10 #define WTIME 0x03
karlmaxwell67 2:38d5187a4e7b 11 #define CONFIGURATION_REGISTER 0x0D
karlmaxwell67 1:70d7d9f1af01 12 #define CDATA 0x14
karlmaxwell67 1:70d7d9f1af01 13 #define RDATA 0x16
karlmaxwell67 1:70d7d9f1af01 14 #define GDATA 0x18
karlmaxwell67 1:70d7d9f1af01 15 #define BDATA 0x1A
karlmaxwell67 1:70d7d9f1af01 16
karlmaxwell67 0:453a43c8bf2b 17 class TCS3472_I2C {
karlmaxwell67 0:453a43c8bf2b 18 public:
karlmaxwell67 0:453a43c8bf2b 19 TCS3472_I2C( PinName sda, PinName scl );
karlmaxwell67 1:70d7d9f1af01 20
karlmaxwell67 1:70d7d9f1af01 21 int getAllColours( int* readings );
karlmaxwell67 1:70d7d9f1af01 22 int getClearData();
karlmaxwell67 1:70d7d9f1af01 23 int getRedData();
karlmaxwell67 1:70d7d9f1af01 24 int getGreenData();
karlmaxwell67 1:70d7d9f1af01 25 int getBlueData();
karlmaxwell67 1:70d7d9f1af01 26
karlmaxwell67 2:38d5187a4e7b 27 int setIntegrationTime( const float itime ); // itime (in ms) should be in the range 2.4 - 614.4ms.
karlmaxwell67 2:38d5187a4e7b 28 int enableWait();
karlmaxwell67 2:38d5187a4e7b 29 int disableWait();
karlmaxwell67 2:38d5187a4e7b 30 int enableInterrupt();
karlmaxwell67 2:38d5187a4e7b 31 int disableInterrupt();
karlmaxwell67 2:38d5187a4e7b 32 int setWaitTime( const float wtime ); // wtime (in ms) should be in the range 2.4 - 7400ms.
karlmaxwell67 0:453a43c8bf2b 33
karlmaxwell67 0:453a43c8bf2b 34 private:
karlmaxwell67 0:453a43c8bf2b 35 I2C i2c_;
karlmaxwell67 1:70d7d9f1af01 36
karlmaxwell67 1:70d7d9f1af01 37 int enableRGBC();
karlmaxwell67 2:38d5187a4e7b 38 char readEnableRegister();
karlmaxwell67 1:70d7d9f1af01 39 int writeSingleRegister( char address, char data );
karlmaxwell67 1:70d7d9f1af01 40 char readSingleRegister( char address );
karlmaxwell67 1:70d7d9f1af01 41 int readMultipleRegisters( char address, char* output, int quantity );
karlmaxwell67 0:453a43c8bf2b 42 };
karlmaxwell67 0:453a43c8bf2b 43
karlmaxwell67 1:70d7d9f1af01 44 #endif