Hexiware Ambient Light code using OPT3001

Revision:
0:92ddc9baf27b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Mar 22 01:11:03 2017 +0000
@@ -0,0 +1,39 @@
+#include "mbed.h"
+#include "math.h"
+
+I2C i2c(PTD9,PTD8);
+Serial pc(USBTX, USBRX);
+AnalogIn check(PTB6);
+ 
+ const int addr = 0x88;
+ //const int addr1 = 0xC0;
+int main() { 
+int exp,exp1,l=1;
+float z;
+float x;
+  
+    i2c.frequency(100000); // set required i2c frequency
+    pc.baud(9600); //set baud rate
+    pc.printf("I2C started!\r\n");
+    char cmd[3]; //for byte transfer
+   while(1){ 
+   //ambient light sensor code
+   cmd[0] = 0x01;   //configuration register
+   cmd[1]= 0xCC;    //configuration data
+    cmd[2]= 0x01;   //configuration data
+  i2c.write(addr, cmd, 3);
+         cmd[0] = 0x00; // data register
+    i2c.write(addr, cmd, 1);
+       wait(0.5);
+       i2c.read(addr, cmd, 2);
+ 
+        exp= cmd[0]>>4;
+        exp1= (cmd[0]-(exp<<4))*256+cmd[1];
+        l=1;
+        for(int r=0;r<exp;r++){l=l*2;};
+        z= (exp1*l)/100;
+        pc.printf("Lux = %.2f\n\r", z);  // printing LUX value
+         wait(0.5);
+         
+        }
+        }
\ No newline at end of file