From 72d28dc3eb9192afbbe48ad46039b70a20c1ff49 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 28 Aug 2012 23:40:46 +0200 Subject: [PATCH] ambient sensor: more zones for testing --- ambient.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/ambient.c b/ambient.c index e91c1ae..e14e024 100644 --- a/ambient.c +++ b/ambient.c @@ -3,11 +3,11 @@ #include "lights.h" static uint16_t ambient_val; -unsigned char ambient_zone; -unsigned char ambient_zone_set; +volatile unsigned char ambient_zone; +static unsigned char ambient_zone_set; static uint16_t ambient_zones[] = { - 1, 2, 10, 20, 256 + 0x10, 0x18, 0x20, 0x40, 0x100, 0x400, 0x1000, 0x4000, 0xffff }; #define N_AMBIENT_ZONES (sizeof(ambient_zones)/sizeof(ambient_zones[0])) @@ -31,21 +31,18 @@ void ambient_adc(uint16_t adcval) if (!ambient_zone_set) ambient_val = adcval << 4; - - // running sum - ambient_val += adcval - (ambient_val >> 4); + else // running sum + ambient_val += adcval - (ambient_val >> 4); newzone = 0; while (newzone < N_AMBIENT_ZONES-1 - && ambient_zones[newzone] <= ambient_val) + && ambient_zones[newzone] < ambient_val) newzone++; if (!ambient_zone_set || newzone != ambient_zone) { ambient_zone = newzone; - ambient_zone_changed(); ambient_zone_set = 1; + ambient_zone_changed(); } } - - -- 2.39.3