Silvan Li / Mbed OS mbedKart_sp

Dependencies:   Motor

Committer:
DerekW2015
Date:
Tue Nov 27 18:01:29 2018 +0000
Revision:
0:a9a4c0fd5f8a
Start

Who changed what in which revision?

UserRevisionLine numberNew contents of line
DerekW2015 0:a9a4c0fd5f8a 1 #include "mbed.h"
DerekW2015 0:a9a4c0fd5f8a 2 #include "rgbSensor.h"
DerekW2015 0:a9a4c0fd5f8a 3
DerekW2015 0:a9a4c0fd5f8a 4 rgbSensor::rgbSensor(PinName sda, PinName scl) :
DerekW2015 0:a9a4c0fd5f8a 5 _i2c(sda, scl){
DerekW2015 0:a9a4c0fd5f8a 6 value_R = 0;
DerekW2015 0:a9a4c0fd5f8a 7 value_G = 0;
DerekW2015 0:a9a4c0fd5f8a 8 value_B = 0;
DerekW2015 0:a9a4c0fd5f8a 9 sensor_addr = 41 << 1;
DerekW2015 0:a9a4c0fd5f8a 10
DerekW2015 0:a9a4c0fd5f8a 11 _i2c.frequency(200000);
DerekW2015 0:a9a4c0fd5f8a 12
DerekW2015 0:a9a4c0fd5f8a 13 char id_regval[1] = {146};
DerekW2015 0:a9a4c0fd5f8a 14 char data[1] = {0};
DerekW2015 0:a9a4c0fd5f8a 15 _i2c.write(sensor_addr,id_regval,1, true);
DerekW2015 0:a9a4c0fd5f8a 16 _i2c.read(sensor_addr,data,1,false);
DerekW2015 0:a9a4c0fd5f8a 17 }
DerekW2015 0:a9a4c0fd5f8a 18
DerekW2015 0:a9a4c0fd5f8a 19 void rgbSensor::update()
DerekW2015 0:a9a4c0fd5f8a 20 {
DerekW2015 0:a9a4c0fd5f8a 21 char clear_reg[1] = {148};
DerekW2015 0:a9a4c0fd5f8a 22 char clear_data[2] = {0,0};
DerekW2015 0:a9a4c0fd5f8a 23 _i2c.write(sensor_addr,clear_reg,1, true);
DerekW2015 0:a9a4c0fd5f8a 24 _i2c.read(sensor_addr,clear_data,2, false);
DerekW2015 0:a9a4c0fd5f8a 25
DerekW2015 0:a9a4c0fd5f8a 26 value_C = ((int)clear_data[1] << 8) | clear_data[0];
DerekW2015 0:a9a4c0fd5f8a 27
DerekW2015 0:a9a4c0fd5f8a 28 char red_reg[1] = {150};
DerekW2015 0:a9a4c0fd5f8a 29 char red_data[2] = {0,0};
DerekW2015 0:a9a4c0fd5f8a 30 _i2c.write(sensor_addr,red_reg,1, true);
DerekW2015 0:a9a4c0fd5f8a 31 _i2c.read(sensor_addr,red_data,2, false);
DerekW2015 0:a9a4c0fd5f8a 32
DerekW2015 0:a9a4c0fd5f8a 33 value_R = ((int)red_data[1] << 8) | red_data[0];
DerekW2015 0:a9a4c0fd5f8a 34
DerekW2015 0:a9a4c0fd5f8a 35 char green_reg[1] = {152};
DerekW2015 0:a9a4c0fd5f8a 36 char green_data[2] = {0,0};
DerekW2015 0:a9a4c0fd5f8a 37 _i2c.write(sensor_addr,green_reg,1, true);
DerekW2015 0:a9a4c0fd5f8a 38 _i2c.read(sensor_addr,green_data,2, false);
DerekW2015 0:a9a4c0fd5f8a 39
DerekW2015 0:a9a4c0fd5f8a 40 value_G = ((int)green_data[1] << 8) | green_data[0];
DerekW2015 0:a9a4c0fd5f8a 41
DerekW2015 0:a9a4c0fd5f8a 42 char blue_reg[1] = {154};
DerekW2015 0:a9a4c0fd5f8a 43 char blue_data[2] = {0,0};
DerekW2015 0:a9a4c0fd5f8a 44 _i2c.write(sensor_addr,blue_reg,1, true);
DerekW2015 0:a9a4c0fd5f8a 45 _i2c.read(sensor_addr,blue_data,2, false);
DerekW2015 0:a9a4c0fd5f8a 46
DerekW2015 0:a9a4c0fd5f8a 47 value_B = ((int)blue_data[1] << 8) | blue_data[0];
DerekW2015 0:a9a4c0fd5f8a 48 }
DerekW2015 0:a9a4c0fd5f8a 49
DerekW2015 0:a9a4c0fd5f8a 50 int rgbSensor::get_C()
DerekW2015 0:a9a4c0fd5f8a 51 {
DerekW2015 0:a9a4c0fd5f8a 52 return value_C;
DerekW2015 0:a9a4c0fd5f8a 53 }
DerekW2015 0:a9a4c0fd5f8a 54
DerekW2015 0:a9a4c0fd5f8a 55 int rgbSensor::get_R()
DerekW2015 0:a9a4c0fd5f8a 56 {
DerekW2015 0:a9a4c0fd5f8a 57 return value_R;
DerekW2015 0:a9a4c0fd5f8a 58 }
DerekW2015 0:a9a4c0fd5f8a 59
DerekW2015 0:a9a4c0fd5f8a 60 int rgbSensor::get_G()
DerekW2015 0:a9a4c0fd5f8a 61 {
DerekW2015 0:a9a4c0fd5f8a 62 return value_G;
DerekW2015 0:a9a4c0fd5f8a 63 }
DerekW2015 0:a9a4c0fd5f8a 64
DerekW2015 0:a9a4c0fd5f8a 65 int rgbSensor::get_B()
DerekW2015 0:a9a4c0fd5f8a 66 {
DerekW2015 0:a9a4c0fd5f8a 67 return value_B;
DerekW2015 0:a9a4c0fd5f8a 68 }