This is the library to use the TCS3200 on the mbed

Dependents:   ovvioBug ovvioBug my_example_TCS3200 Ex_TCS3200 ... more

Committer:
wingblank
Date:
Fri Oct 23 15:44:43 2015 +0000
Revision:
1:9edf5a7e29e6
Parent:
0:6962dbee8f4b
2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wingblank 0:6962dbee8f4b 1 #include "mbed.h"
wingblank 0:6962dbee8f4b 2 #include "color.h"
wingblank 0:6962dbee8f4b 3 ColorSensor::ColorSensor(PinName ss0, PinName ss1, PinName ss2, PinName ss3, PinName sout):
wingblank 0:6962dbee8f4b 4 s0(ss0), s1(ss1), s2(ss2), s3(ss3), _out(sout)
wingblank 0:6962dbee8f4b 5 {
wingblank 0:6962dbee8f4b 6 s0.write(1);
wingblank 0:6962dbee8f4b 7 s1.write(0);
wingblank 0:6962dbee8f4b 8 s2.write(0);
wingblank 0:6962dbee8f4b 9 s3.write(0);
wingblank 0:6962dbee8f4b 10 interrupted = 12345;
wingblank 0:6962dbee8f4b 11 countR = counter;
wingblank 0:6962dbee8f4b 12 countG = counter;
wingblank 0:6962dbee8f4b 13 countB = counter;
wingblank 0:6962dbee8f4b 14 counter = 0;
wingblank 0:6962dbee8f4b 15 flag = 0;
wingblank 0:6962dbee8f4b 16 _out.mode(PullUp);
wingblank 0:6962dbee8f4b 17 _out.rise(this, &ColorSensor::incCount);
wingblank 0:6962dbee8f4b 18 ts.attach(this, &ColorSensor::getReading, .01);
wingblank 0:6962dbee8f4b 19
wingblank 0:6962dbee8f4b 20 }
wingblank 0:6962dbee8f4b 21
wingblank 1:9edf5a7e29e6 22
wingblank 1:9edf5a7e29e6 23 /** Returns the Red intensity
wingblank 0:6962dbee8f4b 24 *@return the red intensity
wingblank 0:6962dbee8f4b 25 */
wingblank 0:6962dbee8f4b 26 int ColorSensor::getRed()
wingblank 0:6962dbee8f4b 27 {
wingblank 0:6962dbee8f4b 28 return countR;
wingblank 0:6962dbee8f4b 29 }
wingblank 1:9edf5a7e29e6 30
wingblank 1:9edf5a7e29e6 31 /**Returns the blue intensity
wingblank 0:6962dbee8f4b 32 *@return the blue intensity
wingblank 0:6962dbee8f4b 33 */
wingblank 0:6962dbee8f4b 34 int ColorSensor::getBlue()
wingblank 0:6962dbee8f4b 35 {
wingblank 0:6962dbee8f4b 36 return countB;
wingblank 0:6962dbee8f4b 37 }
wingblank 1:9edf5a7e29e6 38
wingblank 1:9edf5a7e29e6 39 /**Returns the Green intensity
wingblank 0:6962dbee8f4b 40 *
wingblank 0:6962dbee8f4b 41 *@return the green intensity
wingblank 0:6962dbee8f4b 42 */
wingblank 0:6962dbee8f4b 43 int ColorSensor::getGreen()
wingblank 0:6962dbee8f4b 44 {
wingblank 0:6962dbee8f4b 45 return countG;
wingblank 0:6962dbee8f4b 46 }
wingblank 1:9edf5a7e29e6 47
wingblank 1:9edf5a7e29e6 48 /**Used in the PDM calculation
wingblank 0:6962dbee8f4b 49 */
wingblank 0:6962dbee8f4b 50 void ColorSensor::incCount()
wingblank 0:6962dbee8f4b 51 {
wingblank 0:6962dbee8f4b 52 counter++;
wingblank 0:6962dbee8f4b 53 }
wingblank 1:9edf5a7e29e6 54
wingblank 1:9edf5a7e29e6 55 /**Cycles through the channels to get the reading from the R, G, and B channels
wingblank 0:6962dbee8f4b 56 */
wingblank 0:6962dbee8f4b 57 void ColorSensor::getReading()
wingblank 0:6962dbee8f4b 58 {
wingblank 0:6962dbee8f4b 59
wingblank 0:6962dbee8f4b 60 flag++;
wingblank 0:6962dbee8f4b 61 if(flag == 1)
wingblank 0:6962dbee8f4b 62 {
wingblank 0:6962dbee8f4b 63 countR = counter;
wingblank 0:6962dbee8f4b 64 s2.write(1);
wingblank 0:6962dbee8f4b 65 s3.write(1);
wingblank 0:6962dbee8f4b 66 }
wingblank 0:6962dbee8f4b 67 else if(flag == 2)
wingblank 0:6962dbee8f4b 68 {
wingblank 0:6962dbee8f4b 69 countG = counter;
wingblank 0:6962dbee8f4b 70 s2.write(0);
wingblank 0:6962dbee8f4b 71 s3.write(1);
wingblank 0:6962dbee8f4b 72 }
wingblank 0:6962dbee8f4b 73 else if(flag ==3)
wingblank 0:6962dbee8f4b 74 {
wingblank 0:6962dbee8f4b 75 countB = counter;
wingblank 0:6962dbee8f4b 76 s2.write(0);
wingblank 0:6962dbee8f4b 77 s3.write(0);
wingblank 0:6962dbee8f4b 78 }
wingblank 0:6962dbee8f4b 79 else if(flag == 4)
wingblank 0:6962dbee8f4b 80 {
wingblank 0:6962dbee8f4b 81 flag = 0;
wingblank 0:6962dbee8f4b 82 }
wingblank 0:6962dbee8f4b 83 counter = 0;
wingblank 0:6962dbee8f4b 84
wingblank 0:6962dbee8f4b 85 }
wingblank 0:6962dbee8f4b 86
wingblank 0:6962dbee8f4b 87 /*
wingblank 0:6962dbee8f4b 88 * Wrapper for getting a reading
wingblank 0:6962dbee8f4b 89 */
wingblank 0:6962dbee8f4b 90 void ColorSensor::poll()
wingblank 0:6962dbee8f4b 91 {
wingblank 0:6962dbee8f4b 92
wingblank 0:6962dbee8f4b 93 ColorSensor::getReading();
wingblank 0:6962dbee8f4b 94
wingblank 0:6962dbee8f4b 95 }
wingblank 0:6962dbee8f4b 96
wingblank 0:6962dbee8f4b 97