* and having small overlaps in order to provide a bit of hysteresis.
*/
static ambient_zone_t ambient_zones[] = {
* and having small overlaps in order to provide a bit of hysteresis.
*/
static ambient_zone_t ambient_zones[] = {
- { 0x0000 , 0x0280<<AMBIENT_VAL_SHIFT }, // dark
- { 0x0270<<AMBIENT_VAL_SHIFT, 0x02f0<<AMBIENT_VAL_SHIFT }, // evening
- { 0x02e8<<AMBIENT_VAL_SHIFT, 0x0306<<AMBIENT_VAL_SHIFT }, // dawn
- { 0x0300<<AMBIENT_VAL_SHIFT, 0xffff }, // day
+ { 0x0000 , 0x0270<<AMBIENT_VAL_SHIFT }, // dark
+ { 0x0260<<AMBIENT_VAL_SHIFT, 0x02e0<<AMBIENT_VAL_SHIFT }, // evening
+ { 0x02d0<<AMBIENT_VAL_SHIFT, 0x0306<<AMBIENT_VAL_SHIFT }, // dawn
+ { 0x0302<<AMBIENT_VAL_SHIFT, 0xffff }, // day
- byte_val = adcval >> 2;
+ byte_val = ambient_val >> (2 + AMBIENT_VAL_SHIFT - AMBIENT_ADC_SHIFT);
+
+ ambient_val16 += byte_val - (ambient_val16 >> 4);
+ byte_val16 = ambient_val16 >> 4;
+
+ if (byte_val16 > byte_val) {
+ byte_val16 -= byte_val;
+ if (byte_val16 > ambient_16drop)
+ ambient_16drop = byte_val16;
+ }