tweaked detection to use photoresistor through an opamp
Fork of rgb_sensor by
rgb_sensor.h@0:576e43bd193d, 2014-06-25 (annotated)
- 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?
User | Revision | Line number | New 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__*/ |