Discrete RGB colour sensor using a colour LED flashing at high speed and a monochrome LDR (light dependent resistor) for detecting the colour via ADC conversion. The library implements interrupt driven ADC conversion at high speed (370 RGB readings per second, 128 times oversampling per channelfor noise reduction). The detection can optionally run in background.
Dependents: rgb_sensor_buffer discrete_rgb_color_sensor_example
Diff: rgb_sensor.cpp
- Revision:
- 10:b95dfd2d6d4d
- Parent:
- 9:7bd80f4a965e
--- a/rgb_sensor.cpp Thu Jul 03 17:24:41 2014 +0000
+++ b/rgb_sensor.cpp Wed Jul 09 10:27:38 2014 +0000
@@ -140,7 +140,7 @@
if(status & (1UL<<m_adc_channel))
{
/* always read sample to acknowledge IRQ */
- sample = (((&LPC_ADC->ADDR0)[m_adc_channel])>>4) & 0xFFF;
+ sample = (((&LPC_ADC->ADDR0)[m_adc_channel])>>4) & RGB_MASK;
if(!m_done)
{