a beter verjin
Dependencies: m3pi mbed ADJD-S371_ColourSens
Fork of TestColorSensor by
Diff: main.cpp
- 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); +*/ } }