tweaked detection to use photoresistor through an opamp

Dependents:   rgb_sensor_buffer

Fork of rgb_sensor by Milosch Meriac

Committer:
meriac
Date:
Wed Jun 25 14:55:45 2014 +0000
Revision:
0:576e43bd193d
Child:
1:204db97d10c9
moved rgb_sensor to separate library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
meriac 0:576e43bd193d 1 #ifndef __RGB_SENSOR_H__
meriac 0:576e43bd193d 2 #define __RGB_SENSOR_H__
meriac 0:576e43bd193d 3
meriac 0:576e43bd193d 4 #ifndef RGB_OVERSAMPLING
meriac 0:576e43bd193d 5 #define RGB_OVERSAMPLING 128
meriac 0:576e43bd193d 6 #endif/*RGB_OVERSAMPLING*/
meriac 0:576e43bd193d 7
meriac 0:576e43bd193d 8 #ifndef RGB_MAX_ADC_CLK
meriac 0:576e43bd193d 9 #define RGB_MAX_ADC_CLK 12400000UL
meriac 0:576e43bd193d 10 #endif/*RGB_MAX_ADC_CLK*/
meriac 0:576e43bd193d 11
meriac 0:576e43bd193d 12 #define RGB_CHANNELS 4
meriac 0:576e43bd193d 13
meriac 0:576e43bd193d 14 typedef struct
meriac 0:576e43bd193d 15 {
meriac 0:576e43bd193d 16 int red,green,blue;
meriac 0:576e43bd193d 17 } TRGB_Channel;
meriac 0:576e43bd193d 18
meriac 0:576e43bd193d 19 typedef union
meriac 0:576e43bd193d 20 {
meriac 0:576e43bd193d 21 TRGB_Channel ch;
meriac 0:576e43bd193d 22 int data[3];
meriac 0:576e43bd193d 23 } TRGB;
meriac 0:576e43bd193d 24
meriac 0:576e43bd193d 25 class RGB_Sensor
meriac 0:576e43bd193d 26 {
meriac 0:576e43bd193d 27 public:
meriac 0:576e43bd193d 28 RGB_Sensor(PinName red, PinName green, PinName blue, PinName adc);
meriac 0:576e43bd193d 29 ~RGB_Sensor(void);
meriac 0:576e43bd193d 30 bool capture(TRGB &rgb);
meriac 0:576e43bd193d 31 bool capture(void);
meriac 0:576e43bd193d 32 bool wait(TRGB &rgb);
meriac 0:576e43bd193d 33 protected:
meriac 0:576e43bd193d 34 bool m_done;
meriac 0:576e43bd193d 35 uint8_t m_adc_channel, m_rgb_channel;
meriac 0:576e43bd193d 36 DigitalOut m_red, m_green, m_blue;
meriac 0:576e43bd193d 37 int m_adc_aggregation[RGB_CHANNELS], m_adc_count;
meriac 0:576e43bd193d 38 bool wait(void);
meriac 0:576e43bd193d 39 private:
meriac 0:576e43bd193d 40 static void __adc_irq(void);
meriac 0:576e43bd193d 41 void adc_irq(void);
meriac 0:576e43bd193d 42 static RGB_Sensor *m_global;
meriac 0:576e43bd193d 43 };
meriac 0:576e43bd193d 44
meriac 0:576e43bd193d 45 #endif/*__RGB_SENSOR_H__*/