From fe246bfa6d9c4ac3eb744f9368775e7259723980 Mon Sep 17 00:00:00 2001 From: fruchti Date: Wed, 15 Jul 2020 22:44:20 +0200 Subject: [PATCH] Use averaged brightness for limit calculation --- build-number.txt | 2 +- src/light_sensor.c | 19 +++++++++---------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/build-number.txt b/build-number.txt index 10b0c0d..2681747 100644 --- a/build-number.txt +++ b/build-number.txt @@ -1 +1 @@ -264 +277 diff --git a/src/light_sensor.c b/src/light_sensor.c index 0a0cba1..e12a355 100644 --- a/src/light_sensor.c +++ b/src/light_sensor.c @@ -67,19 +67,18 @@ void LightSensor_Poll(void) unsigned int measurement = LightSensor_Measurement; LightSensor_NewMeasurement = false; float brightness = 1.0f - measurement / 65535.0f; - - if(measurement != 65535 && brightness < LightSensor_MinimumBrightness) - { - LightSensor_MinimumBrightness = brightness; - } - if(brightness > LightSensor_MaximumBrightness) - { - LightSensor_MaximumBrightness = brightness; - } - LightSensor_AbsoluteBrightness = LIGHTSENSOR_LAMBDA * LightSensor_AbsoluteBrightness + (1.0f - LIGHTSENSOR_LAMBDA) * brightness; + if(LightSensor_AbsoluteBrightness < LightSensor_MinimumBrightness) + { + LightSensor_MinimumBrightness = LightSensor_AbsoluteBrightness; + } + if(LightSensor_AbsoluteBrightness > LightSensor_MaximumBrightness) + { + LightSensor_MaximumBrightness = LightSensor_AbsoluteBrightness; + } + // Scale and saturate to get relative brightness value float range = LightSensor_MaximumBrightness - LightSensor_MinimumBrightness;