a beter verjin

Dependencies:   m3pi mbed ADJD-S371_ColourSens

Fork of TestColorSensor by Kyle Chiang

Revision:
2:5c0159599726
Parent:
1:d481b2912c2a
Child:
3:b3c41c85fb1e
--- a/main.cpp	Wed Nov 20 21:06:40 2013 +0000
+++ b/main.cpp	Thu Nov 21 00:13:13 2013 +0000
@@ -3,83 +3,83 @@
 
 DigitalOut sensorLED(p8);
 I2C colorSensor(p28, p27);
-//Serial bt(p13, p14); // tx, rx
+Serial bt(p13, p14); // tx, rx
 
 const int addr = 0x74;
 m3pi m3pi;
 
+int read(char lowByteRegister) {
+        char cmd[1];
+        char echo[1];
+        bt.printf("E:%0x ",echo[0]);
 
+        cmd[0] = lowByteRegister;
+        colorSensor.write(addr,cmd,1);
+        colorSensor.read(addr,echo,1);
+        int result_low = (int) echo[0];
+        bt.printf("lo:%0x ",result_low);
+        
+        /*
+        cmd[0] = lowByteRegister + 1;
+        colorSensor.write(addr,cmd,1);
+        colorSensor.read(addr,echo,1);
+        int result_high = (int) echo[0];
+        bt.printf("hi:%0x ",result_high);
+        
+        return (result_high << 8) | result_low;
+        */
+        
+        return result_low;
+}
 
 int main() {
 
+    bt.baud(115200);
+
     char cmd[2];
-    //sensorLED = 1;
+    sensorLED = 1;
     m3pi.locate(0,1);
     m3pi.printf("Start");
     wait(1);
     
     while(1) {
-
-
         cmd[0] = 0x00;
         cmd[1] = 0x01;
         colorSensor.write(addr,cmd,2);
-
-        int result_low;
-        int result_high;
         
-        
-        //Red
-        cmd[0] = 0x40;
-        wait(.1);
-        colorSensor.write(addr,cmd,1);
-        colorSensor.read(addr, cmd,1);
-        result_low = (int) cmd[0];
-        
-        cmd[0] = 0x41;
-        wait(.1);
-        colorSensor.write(addr,cmd,1);
-        colorSensor.read(addr, cmd,1);
-        result_high = (int) cmd[0];
-        
-        int red = (result_high << 8) + result_low;
-        
-        //Green
-        cmd[0] = 0x42;
-        wait(.1);
-        colorSensor.write(addr,cmd,1);
-        colorSensor.read(addr, cmd,1);
-        result_low = (int) cmd[0];
-        
-        cmd[0] = 0x43;
-        wait(.1);
-        colorSensor.write(addr,cmd,1);
-        colorSensor.read(addr, cmd,1);
-        result_high = (int) cmd[0];
-        
-        int green = (result_high << 8) + result_low;
-        
-        //Blue
-        cmd[0] = 0x44;
-        wait(.1);
-        colorSensor.write(addr,cmd,1);
-        colorSensor.read(addr, cmd,1);
-        result_low = (int) cmd[0];
-        
-        cmd[0] = 0x45;
-        wait(.1);
-        colorSensor.write(addr,cmd,1);
-        colorSensor.read(addr, cmd,1);
-        result_high = (int) cmd[0];
-        
-        int blue = (result_high << 8) + result_low;
+        int red = read(0x06);
+        // int green = read(0x42);
+        // int blue = read(0x44);
 
         // Print for debugging
         
-        //bt.printf("R:%d",red);
-        //bt.printf("G:%d",green);
-        //bt.printf("B:%d",blue);
+        bt.printf("R:%0x ",red);
+        //bt.printf("G:%0x ",green);
+        //bt.printf("B:%0x     ",blue);
+        wait(1);
+ 
+ /*       
+        cmd[0] = 0x06;
+        colorSensor.write(addr,cmd,1);
+        colorSensor.read(addr,cmd,1);
+        red = cmd[0];
         
+        cmd[0] = 0x07;
+        colorSensor.write(addr,cmd,1);
+        colorSensor.read(addr,cmd,1);
+        green = cmd[0];
+        
+        cmd[0] = 0x08;
+        colorSensor.write(addr,cmd,1);
+        colorSensor.read(addr,cmd,1);
+        blue = cmd[0];
+        
+        bt.printf("Rc:%d ",red);
+        bt.printf("Gc:%d ",green);
+        bt.printf("Bc:%d      ",blue);
+*/        
+  
+ /*       
         m3pi.cls();
         m3pi.locate(0,1);
         m3pi.printf("R:%d",red);
@@ -94,5 +94,6 @@
         m3pi.locate(0,1);
         m3pi.printf("B:%d",blue);    
         wait(1.5);    
+*/
     }
 }