a

Dependencies:   mbed

Committer:
kamoshik
Date:
Fri Apr 03 15:10:03 2015 +0000
Revision:
0:3c7374cb5c3c
a

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kamoshik 0:3c7374cb5c3c 1 #include "mbed.h"
kamoshik 0:3c7374cb5c3c 2
kamoshik 0:3c7374cb5c3c 3 #define ADDR 0x2A
kamoshik 0:3c7374cb5c3c 4
kamoshik 0:3c7374cb5c3c 5
kamoshik 0:3c7374cb5c3c 6 DigitalOut myled(LED1);
kamoshik 0:3c7374cb5c3c 7 DigitalOut myled2(LED2);
kamoshik 0:3c7374cb5c3c 8 I2C i2c( p28, p27 );
kamoshik 0:3c7374cb5c3c 9 Serial pc(USBTX, USBRX); // tx, rx
kamoshik 0:3c7374cb5c3c 10 //Serial device(p9, p10); // tx, rx
kamoshik 0:3c7374cb5c3c 11
kamoshik 0:3c7374cb5c3c 12 unsigned int red = 0;
kamoshik 0:3c7374cb5c3c 13 unsigned int green = 0;
kamoshik 0:3c7374cb5c3c 14 unsigned int blue = 0;
kamoshik 0:3c7374cb5c3c 15 unsigned int ir = 0;
kamoshik 0:3c7374cb5c3c 16
kamoshik 0:3c7374cb5c3c 17
kamoshik 0:3c7374cb5c3c 18 void callback() {
kamoshik 0:3c7374cb5c3c 19 // Note: you need to actually read from the serial to clear the RX interrupt
kamoshik 0:3c7374cb5c3c 20 printf("%c\n", pc.getc());
kamoshik 0:3c7374cb5c3c 21 myled2 = !myled2;
kamoshik 0:3c7374cb5c3c 22 }
kamoshik 0:3c7374cb5c3c 23
kamoshik 0:3c7374cb5c3c 24 void GetRGB(){
kamoshik 0:3c7374cb5c3c 25 int databuf =0;
kamoshik 0:3c7374cb5c3c 26 char cmd[2];
kamoshik 0:3c7374cb5c3c 27 char dat[8];
kamoshik 0:3c7374cb5c3c 28 int a =0;
kamoshik 0:3c7374cb5c3c 29 /* //manual exposure mode
kamoshik 0:3c7374cb5c3c 30 setManualtGain(100);
kamoshik 0:3c7374cb5c3c 31 Wire.beginTransmission(device_address);
kamoshik 0:3c7374cb5c3c 32 Wire.write(control_reg);
kamoshik 0:3c7374cb5c3c 33 Wire.write(0x84); // ADC reset LowGain wakeup
kamoshik 0:3c7374cb5c3c 34 Wire.endTransmission(false);
kamoshik 0:3c7374cb5c3c 35 Wire.beginTransmission(device_address);
kamoshik 0:3c7374cb5c3c 36 Wire.write(control_reg);
kamoshik 0:3c7374cb5c3c 37 Wire.write(0x04); //start
kamoshik 0:3c7374cb5c3c 38 Wire.endTransmission(true);
kamoshik 0:3c7374cb5c3c 39 */
kamoshik 0:3c7374cb5c3c 40
kamoshik 0:3c7374cb5c3c 41 //preset gain mode exposure time (each color ch)
kamoshik 0:3c7374cb5c3c 42 // 00 = 87.5us
kamoshik 0:3c7374cb5c3c 43 // 01= 1.4ms
kamoshik 0:3c7374cb5c3c 44 // 10= 22.4ms
kamoshik 0:3c7374cb5c3c 45 // 11= 179.2ms
kamoshik 0:3c7374cb5c3c 46 cmd[0] = 0x00;
kamoshik 0:3c7374cb5c3c 47 cmd[1] = 0x8A;
kamoshik 0:3c7374cb5c3c 48 // i2c.start();
kamoshik 0:3c7374cb5c3c 49 a = i2c.write(ADDR , cmd , 2);
kamoshik 0:3c7374cb5c3c 50 cmd[0] = 0x00;
kamoshik 0:3c7374cb5c3c 51 cmd[1] = 0x0A;
kamoshik 0:3c7374cb5c3c 52 i2c.write(ADDR , cmd , 2);
kamoshik 0:3c7374cb5c3c 53 // printf("b=%d",a);
kamoshik 0:3c7374cb5c3c 54
kamoshik 0:3c7374cb5c3c 55 wait(0.1);
kamoshik 0:3c7374cb5c3c 56
kamoshik 0:3c7374cb5c3c 57 cmd[0] = 0x03;
kamoshik 0:3c7374cb5c3c 58 //i2c.start();
kamoshik 0:3c7374cb5c3c 59 a = i2c.write(ADDR , cmd , 1);
kamoshik 0:3c7374cb5c3c 60 i2c.read(ADDR , dat , 8);//引数trueでNACK出力
kamoshik 0:3c7374cb5c3c 61
kamoshik 0:3c7374cb5c3c 62
kamoshik 0:3c7374cb5c3c 63 red = dat[0]<<8 | dat[1];
kamoshik 0:3c7374cb5c3c 64 green = dat[2]<<8 | dat[3];
kamoshik 0:3c7374cb5c3c 65 blue = dat[4]<<8 | dat[5];
kamoshik 0:3c7374cb5c3c 66 ir = dat[6]<<8 | dat[7];
kamoshik 0:3c7374cb5c3c 67
kamoshik 0:3c7374cb5c3c 68
kamoshik 0:3c7374cb5c3c 69 }
kamoshik 0:3c7374cb5c3c 70
kamoshik 0:3c7374cb5c3c 71 int main()
kamoshik 0:3c7374cb5c3c 72 {
kamoshik 0:3c7374cb5c3c 73 i2c.frequency(100000);
kamoshik 0:3c7374cb5c3c 74
kamoshik 0:3c7374cb5c3c 75 //pc.attach(&callback);
kamoshik 0:3c7374cb5c3c 76 pc.baud(115200);
kamoshik 0:3c7374cb5c3c 77 // device.baud(115200);
kamoshik 0:3c7374cb5c3c 78 while(1) {
kamoshik 0:3c7374cb5c3c 79 myled = 1;
kamoshik 0:3c7374cb5c3c 80 wait(0.25);
kamoshik 0:3c7374cb5c3c 81 myled = 0;
kamoshik 0:3c7374cb5c3c 82 wait(0.25);
kamoshik 0:3c7374cb5c3c 83
kamoshik 0:3c7374cb5c3c 84 GetRGB();
kamoshik 0:3c7374cb5c3c 85
kamoshik 0:3c7374cb5c3c 86 pc.printf("R=%5d G=%5d B=%5d I=%5d\n",red,green,blue,ir);
kamoshik 0:3c7374cb5c3c 87 // device.printf("12345\n");
kamoshik 0:3c7374cb5c3c 88 }
kamoshik 0:3c7374cb5c3c 89 }