* 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
};
#define N_AMBIENT_ZONES (sizeof(ambient_zones)/sizeof(ambient_zones[0]))
if (ambient_log_offset >= AMBIENT_LOG_SIZE - 1)
return;
- eeprom_write_byte(&ambient_log[ambient_log_offset++], ambient_min);
- // eeprom_write_byte(&ambient_log[ambient_log_offset++], ambient_max);
+ // eeprom_write_byte(&ambient_log[ambient_log_offset++], ambient_min);
+ eeprom_write_byte(&ambient_log[ambient_log_offset++], ambient_max);
eeprom_write_byte(&ambient_log[ambient_log_offset++], ambient_16drop);
ambient_min = 0xFF;
ambient_16drop = 0;
}
-void ambient_zone_changed()
+static inline void ambient_zone_changed()
{
-#if 1
- log_byte(0xab);
- log_byte(ambient_zone);
- log_word(ambient_val);
- log_flush();
-#endif
-
- // led_set_pattern(N_PWMLEDS, status_led_pattern_select());
- // led_set_pattern(N_PWMLEDS+1, illumination_led_pattern_select());
- // pattern_reload();
+ pwmled_select_brightness();
+ pattern_reload();
}
void ambient_adc(uint16_t adcval)
if (ambient_max < byte_val)
ambient_max = byte_val;
-#if 0
if (old_zone != ambient_zone) {
+#if 0
log_byte(0xab);
log_byte(ambient_zone);
log_word(adcval);
log_flush();
- }
- // ambient_zone_changed();
#endif
+ ambient_zone_changed();
+ }
}