Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
rgbSensor.cpp@0:a9a4c0fd5f8a, 2018-11-27 (annotated)
- Committer:
- DerekW2015
- Date:
- Tue Nov 27 18:01:29 2018 +0000
- Revision:
- 0:a9a4c0fd5f8a
Start
Who changed what in which revision?
| User | Revision | Line number | New 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 | } |
