PMKIND

Dependencies:   rohm-rpr0521 rohm-sensor-hal Servo TextLCD

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?

UserRevisionLine numberNew 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