Dependents:   nhk2018_throwing02 nhk_2018_undercarry_test08 nhk_2018_undercarry_test09 nhk_2018_undercarry_test10 ... more

Fork of TCS3200 by Grant Phillips

Committer:
kenken0721
Date:
Wed Mar 28 06:49:19 2018 +0000
Revision:
3:62492ac23077
Parent:
2:78984c66a877

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
grantphillips 0:b98e768bc655 1 #include "TCS3200.h"
grantphillips 0:b98e768bc655 2 #include "mbed.h"
grantphillips 0:b98e768bc655 3
grantphillips 0:b98e768bc655 4
kenken0721 1:40b638b93be8 5 TCS3200::TCS3200(PinName S2, PinName S3, PinName OUT) :
kenken0721 2:78984c66a877 6 mS2(S2), mS3(S3), signal(OUT){
grantphillips 0:b98e768bc655 7 signal.rise(this,&TCS3200::HighTrigger);
grantphillips 0:b98e768bc655 8 signal.fall(this,&TCS3200::LowTrigger);
kenken0721 2:78984c66a877 9 ticker.attach(this,&TCS3200::fliper,0.1);
kenken0721 2:78984c66a877 10 coler = RED;
kenken0721 2:78984c66a877 11 mS2 = 0.0;
kenken0721 2:78984c66a877 12 mS3 = 0.0;
grantphillips 0:b98e768bc655 13 }
grantphillips 0:b98e768bc655 14
kenken0721 2:78984c66a877 15 void TCS3200::fliper(){
kenken0721 2:78984c66a877 16 switch(coler){
kenken0721 2:78984c66a877 17 case RED:
kenken0721 2:78984c66a877 18 red_pulsewidth = pulsewidth;
kenken0721 2:78984c66a877 19 mS2 = 1.0;
kenken0721 2:78984c66a877 20 mS3 = 1.0;
kenken0721 2:78984c66a877 21 coler = GREEN;
kenken0721 2:78984c66a877 22 break;
kenken0721 2:78984c66a877 23 case GREEN:
kenken0721 2:78984c66a877 24 green_pulsewidth = pulsewidth;
kenken0721 2:78984c66a877 25 mS2 = 0.0;
kenken0721 2:78984c66a877 26 mS3 = 1.0;
kenken0721 2:78984c66a877 27 coler = BLUE;
kenken0721 2:78984c66a877 28 break;
kenken0721 2:78984c66a877 29 case BLUE:
kenken0721 2:78984c66a877 30 blue_pulsewidth = pulsewidth;
kenken0721 2:78984c66a877 31 mS2 = 1.0;
kenken0721 2:78984c66a877 32 mS3 = 0.0;
kenken0721 2:78984c66a877 33 coler = CLEAR;
kenken0721 2:78984c66a877 34 break;
kenken0721 2:78984c66a877 35 case CLEAR:
kenken0721 2:78984c66a877 36 clear_pulsewidth = pulsewidth;
kenken0721 2:78984c66a877 37 mS2 = 0.0;
kenken0721 2:78984c66a877 38 mS3 = 0.0;
kenken0721 2:78984c66a877 39 coler = RED;
kenken0721 2:78984c66a877 40 break;
kenken0721 2:78984c66a877 41 default:
kenken0721 2:78984c66a877 42 break;
kenken0721 2:78984c66a877 43 }
kenken0721 2:78984c66a877 44 }
kenken0721 2:78984c66a877 45
kenken0721 2:78984c66a877 46 long TCS3200::ReadRed(){
kenken0721 2:78984c66a877 47 return(red_pulsewidth);
grantphillips 0:b98e768bc655 48 }
grantphillips 0:b98e768bc655 49
kenken0721 2:78984c66a877 50 long TCS3200::ReadGreen(){
kenken0721 2:78984c66a877 51 return(green_pulsewidth);
grantphillips 0:b98e768bc655 52 }
grantphillips 0:b98e768bc655 53
kenken0721 2:78984c66a877 54 long TCS3200::ReadBlue(){
kenken0721 2:78984c66a877 55 return(blue_pulsewidth);
kenken0721 2:78984c66a877 56 }
kenken0721 2:78984c66a877 57
kenken0721 2:78984c66a877 58 long TCS3200::ReadClear(){
kenken0721 2:78984c66a877 59 return(clear_pulsewidth);
grantphillips 0:b98e768bc655 60 }
grantphillips 0:b98e768bc655 61
grantphillips 0:b98e768bc655 62 void TCS3200::HighTrigger() {
grantphillips 0:b98e768bc655 63 timer.start();
grantphillips 0:b98e768bc655 64 }
grantphillips 0:b98e768bc655 65
grantphillips 0:b98e768bc655 66 void TCS3200::LowTrigger() {
grantphillips 0:b98e768bc655 67 timer.stop();
grantphillips 0:b98e768bc655 68 pulsewidth = timer.read_us();
grantphillips 0:b98e768bc655 69 timer.reset();
grantphillips 0:b98e768bc655 70 }