Unverified Commit ba778ead authored by Birte Kristina Friesel's avatar Birte Kristina Friesel
Browse files

max44009: handle overrange condition

parent 05644dec
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -2,6 +2,9 @@
 * Copyright 2020 Daniel Friesel
 *
 * SPDX-License-Identifier: BSD-2-Clause
 *
 * Driver for MAX44009 Ambient Light Sensor.
 * Does not support interrupts.
 */
#ifndef MAX44009_H
#define MAX44009_H
+8 −0
Original line number Diff line number Diff line
@@ -2,6 +2,9 @@
 * Copyright 2020 Daniel Friesel
 *
 * SPDX-License-Identifier: BSD-2-Clause
 *
 * Driver for MAX44009 Ambient Light Sensor.
 * Does not support interrupts.
 */
#include "driver/max44009.h"
#if defined(MULTIPASS_ARCH_HAS_I2C) && !defined(CONFIG_driver_softi2c)
@@ -37,6 +40,11 @@ float MAX44009::getLux()
	*/
	exponent = (luxHigh & 0xF0) >> 4;

	if (exponent == 0x0f) {
		// overrange condition
		return -1;
	}

	/*
	* Cast base and mantissa to float to avoid calculation errors
	* because of 16bit integer overflows.