PMKIND
Dependencies: rohm-rpr0521 rohm-sensor-hal Servo TextLCD
color.cpp@1:7b52bdcdac4e, 2021-06-27 (annotated)
- Committer:
- pavledjo
- Date:
- Sun Jun 27 17:38:31 2021 +0000
- Revision:
- 1:7b52bdcdac4e
- Parent:
- 0:51001d8fdeff
PMK_m1;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
emilija | 0:51001d8fdeff | 1 | #include "mbed.h" |
emilija | 0:51001d8fdeff | 2 | #include "color.h" |
emilija | 0:51001d8fdeff | 3 | ColorSensor::ColorSensor(PinName ss0, PinName ss1, PinName ss2, PinName ss3, PinName sout): |
emilija | 0:51001d8fdeff | 4 | s0(ss0), s1(ss1), s2(ss2), s3(ss3), _out(sout) |
emilija | 0:51001d8fdeff | 5 | { |
emilija | 0:51001d8fdeff | 6 | s0.write(1); |
emilija | 0:51001d8fdeff | 7 | s1.write(1); |
emilija | 0:51001d8fdeff | 8 | s2.write(0); |
emilija | 0:51001d8fdeff | 9 | s3.write(0); |
emilija | 0:51001d8fdeff | 10 | interrupted = 12345; |
emilija | 0:51001d8fdeff | 11 | countR = counter; |
emilija | 0:51001d8fdeff | 12 | countG = counter; |
emilija | 0:51001d8fdeff | 13 | countB = counter; |
emilija | 0:51001d8fdeff | 14 | counter = 0; |
emilija | 0:51001d8fdeff | 15 | flag = 0; |
emilija | 0:51001d8fdeff | 16 | _out.mode(PullUp); |
emilija | 0:51001d8fdeff | 17 | _out.rise(this, &ColorSensor::incCount); |
emilija | 0:51001d8fdeff | 18 | ts.attach(this, &ColorSensor::getReading, .01); |
emilija | 0:51001d8fdeff | 19 | |
emilija | 0:51001d8fdeff | 20 | } |
emilija | 0:51001d8fdeff | 21 | |
emilija | 0:51001d8fdeff | 22 | int ColorSensor::getRed() |
emilija | 0:51001d8fdeff | 23 | { |
emilija | 0:51001d8fdeff | 24 | return countR; |
emilija | 0:51001d8fdeff | 25 | } |
emilija | 0:51001d8fdeff | 26 | int ColorSensor::getBlue() |
emilija | 0:51001d8fdeff | 27 | { |
emilija | 0:51001d8fdeff | 28 | return countB; |
emilija | 0:51001d8fdeff | 29 | } |
emilija | 0:51001d8fdeff | 30 | int ColorSensor::getGreen() |
emilija | 0:51001d8fdeff | 31 | { |
emilija | 0:51001d8fdeff | 32 | return countG; |
emilija | 0:51001d8fdeff | 33 | } |
emilija | 0:51001d8fdeff | 34 | void ColorSensor::incCount() |
emilija | 0:51001d8fdeff | 35 | { |
emilija | 0:51001d8fdeff | 36 | counter++; |
emilija | 0:51001d8fdeff | 37 | } |
emilija | 0:51001d8fdeff | 38 | void ColorSensor::getReading() |
emilija | 0:51001d8fdeff | 39 | { |
emilija | 0:51001d8fdeff | 40 | |
emilija | 0:51001d8fdeff | 41 | flag++; |
emilija | 0:51001d8fdeff | 42 | if(flag == 1) |
emilija | 0:51001d8fdeff | 43 | { |
emilija | 0:51001d8fdeff | 44 | countR = counter; |
emilija | 0:51001d8fdeff | 45 | s2.write(1); |
emilija | 0:51001d8fdeff | 46 | s3.write(1); |
emilija | 0:51001d8fdeff | 47 | } |
emilija | 0:51001d8fdeff | 48 | else if(flag == 2) |
emilija | 0:51001d8fdeff | 49 | { |
emilija | 0:51001d8fdeff | 50 | countG = counter; |
emilija | 0:51001d8fdeff | 51 | s2.write(0); |
emilija | 0:51001d8fdeff | 52 | s3.write(1); |
emilija | 0:51001d8fdeff | 53 | } |
emilija | 0:51001d8fdeff | 54 | else if(flag ==3) |
emilija | 0:51001d8fdeff | 55 | { |
emilija | 0:51001d8fdeff | 56 | countB = counter; |
emilija | 0:51001d8fdeff | 57 | s2.write(0); |
emilija | 0:51001d8fdeff | 58 | s3.write(0); |
emilija | 0:51001d8fdeff | 59 | } |
emilija | 0:51001d8fdeff | 60 | else if(flag == 4) |
emilija | 0:51001d8fdeff | 61 | { |
emilija | 0:51001d8fdeff | 62 | flag = 0; |
emilija | 0:51001d8fdeff | 63 | } |
emilija | 0:51001d8fdeff | 64 | counter = 0; |
emilija | 0:51001d8fdeff | 65 | |
emilija | 0:51001d8fdeff | 66 | } |
emilija | 0:51001d8fdeff | 67 | |
emilija | 0:51001d8fdeff | 68 | |
emilija | 0:51001d8fdeff | 69 | void ColorSensor::poll() |
emilija | 0:51001d8fdeff | 70 | { |
emilija | 0:51001d8fdeff | 71 | |
emilija | 0:51001d8fdeff | 72 | ColorSensor::getReading(); |
emilija | 0:51001d8fdeff | 73 | |
emilija | 0:51001d8fdeff | 74 | } |
emilija | 0:51001d8fdeff | 75 | |
emilija | 0:51001d8fdeff | 76 |