![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
a
main.cpp
- Committer:
- kamoshik
- Date:
- 2015-04-03
- Revision:
- 0:3c7374cb5c3c
File content as of revision 0:3c7374cb5c3c:
#include "mbed.h" #define ADDR 0x2A DigitalOut myled(LED1); DigitalOut myled2(LED2); I2C i2c( p28, p27 ); Serial pc(USBTX, USBRX); // tx, rx //Serial device(p9, p10); // tx, rx unsigned int red = 0; unsigned int green = 0; unsigned int blue = 0; unsigned int ir = 0; void callback() { // Note: you need to actually read from the serial to clear the RX interrupt printf("%c\n", pc.getc()); myled2 = !myled2; } void GetRGB(){ int databuf =0; char cmd[2]; char dat[8]; int a =0; /* //manual exposure mode setManualtGain(100); Wire.beginTransmission(device_address); Wire.write(control_reg); Wire.write(0x84); // ADC reset LowGain wakeup Wire.endTransmission(false); Wire.beginTransmission(device_address); Wire.write(control_reg); Wire.write(0x04); //start Wire.endTransmission(true); */ //preset gain mode exposure time (each color ch) // 00 = 87.5us // 01= 1.4ms // 10= 22.4ms // 11= 179.2ms cmd[0] = 0x00; cmd[1] = 0x8A; // i2c.start(); a = i2c.write(ADDR , cmd , 2); cmd[0] = 0x00; cmd[1] = 0x0A; i2c.write(ADDR , cmd , 2); // printf("b=%d",a); wait(0.1); cmd[0] = 0x03; //i2c.start(); a = i2c.write(ADDR , cmd , 1); i2c.read(ADDR , dat , 8);//引数trueでNACK出力 red = dat[0]<<8 | dat[1]; green = dat[2]<<8 | dat[3]; blue = dat[4]<<8 | dat[5]; ir = dat[6]<<8 | dat[7]; } int main() { i2c.frequency(100000); //pc.attach(&callback); pc.baud(115200); // device.baud(115200); while(1) { myled = 1; wait(0.25); myled = 0; wait(0.25); GetRGB(); pc.printf("R=%5d G=%5d B=%5d I=%5d\n",red,green,blue,ir); // device.printf("12345\n"); } }