]> www.fi.muni.cz Git - bike-lights.git/blobdiff - firmware/ambient.c
firmware: buttons + hall probe via ADC
[bike-lights.git] / firmware / ambient.c
index c6c6a654ab67e1bd974366feefd575e98af95f55..143ffc49e1bf98d8ad5c5ae42566aac38c907e52 100644 (file)
@@ -15,10 +15,10 @@ typedef struct {
  * and having small overlaps in order to provide a bit of hysteresis.
  */
 static ambient_zone_t ambient_zones[] = {
-       { 0x0000, 0x3120 }, // dark
-       { 0x30f0, 0x5000 },
-       { 0x4c00, 0x8000 },
-       { 0x7800, 0xffff }
+       { 0x0000, 0xa400 }, // dark
+       { 0xa000, 0xc000 },
+       { 0xbe00, 0xc800 },
+       { 0xc600, 0xffff }
 };
 #define N_AMBIENT_ZONES (sizeof(ambient_zones)/sizeof(ambient_zones[0]))
 
@@ -46,7 +46,7 @@ void ambient_adc(uint16_t adcval)
 {
        unsigned char old_zone = ambient_zone;
 
-       ambient_val += adcval - (ambient_val >> 6);
+       ambient_val += adcval - (ambient_val >> 3);
 
        while (ambient_zones[ambient_zone].lo > ambient_val)
                ambient_zone--;