From e99d829f06a26a44334ba52d9b085fc103989eac Mon Sep 17 00:00:00 2001
From: Rahix <rahix@rahix.de>
Date: Sun, 25 Aug 2019 12:08:36 +0200
Subject: [PATCH] fix(light-sensor): Lock ADC during measurement

Signed-off-by: Rahix <rahix@rahix.de>
---
 epicardium/modules/light_sensor.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/epicardium/modules/light_sensor.c b/epicardium/modules/light_sensor.c
index 3f3573f1..de20b6e2 100644
--- a/epicardium/modules/light_sensor.c
+++ b/epicardium/modules/light_sensor.c
@@ -29,8 +29,14 @@ static int light_sensor_init()
 
 uint16_t epic_light_sensor_read()
 {
+	if (hwlock_acquire(HWLOCK_ADC, pdMS_TO_TICKS(1000)) != 0) {
+		return 0;
+	}
+
 	ADC_StartConvert(ADC_CH_7, 0, 0);
 	ADC_GetData(&last_value);
+
+	hwlock_release(HWLOCK_ADC);
 	return last_value;
 }
 
-- 
GitLab