]> www.fi.muni.cz Git - bike-lights.git/blobdiff - firmware/ambient.c
firmware: control logic moved to a separate module
[bike-lights.git] / firmware / ambient.c
index cbbef9e02a78d902ef606dad286ffa8cb90358da..025b0c4bd6dcb6839395a36f91a8fedd4dc97e73 100644 (file)
@@ -7,11 +7,11 @@ volatile unsigned char ambient_zone;
 static unsigned char ambient_zone_set;
 
 static uint16_t ambient_zones[] = {
-       0x10, 0x18, 0x20, 0x40, 0x100, 0x400, 0x1000, 0x4000, 0xffff
+       0x0c00, 0x0d00, 0x1000, 0x1800, 0x2800, 0x2f80, 0xffff
 };
 #define N_AMBIENT_ZONES (sizeof(ambient_zones)/sizeof(ambient_zones[0]))
 
-void ambient_init()
+void init_ambient()
 {
        ambient_val = 0;
        ambient_zone = 0;
@@ -20,9 +20,12 @@ void ambient_init()
 
 void ambient_zone_changed()
 {
-       log_byte(0xCC);
+       log_byte(0xab);
        log_byte(ambient_zone);
        log_word(ambient_val);
+       log_flush();
+
+       pattern_reload();
 }
 
 void ambient_adc(uint16_t adcval)
@@ -39,6 +42,7 @@ void ambient_adc(uint16_t adcval)
                && ambient_zones[newzone] < ambient_val)
                newzone++;
 
+       // TODO: implement hysteresis?
        if (!ambient_zone_set || newzone != ambient_zone) {
                ambient_zone = newzone;
                ambient_zone_set = 1;