summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArmando Visconti <armando.visconti@st.com>2017-07-10 21:04:17 +0000
committerandroid-build-merger <android-build-merger@google.com>2017-07-10 21:04:17 +0000
commit26300862413fadf6aec6397af8eb036244a36a54 (patch)
tree0360f2314c51d6a97457d13ff80b72ebb282f551
parent50cd609727eed99c48b96346ec45239decc4e0cd (diff)
parentc7e7b8adc26ae0be7541b12aa663ba190b565bd0 (diff)
downloadcontexthub-26300862413fadf6aec6397af8eb036244a36a54.tar.gz
nanohub: drivers/st_mag40: Discard samples generated during sensor turn-on time am: c69a674cb2 am: ae710a4093
am: c7e7b8adc2 Change-Id: Ic8fbc37bf75cbe3468cd0987a248025f2085c34e
-rw-r--r--firmware/os/drivers/st_mag40/st_mag40.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/firmware/os/drivers/st_mag40/st_mag40.c b/firmware/os/drivers/st_mag40/st_mag40.c
index 70242d17..bdc874aa 100644
--- a/firmware/os/drivers/st_mag40/st_mag40.c
+++ b/firmware/os/drivers/st_mag40/st_mag40.c
@@ -215,6 +215,7 @@ struct st_mag40_Task {
uint8_t subState;
/* sensor flags */
+ uint8_t samplesToDiscard;
uint32_t rate;
uint64_t latency;
bool magOn;
@@ -484,6 +485,7 @@ static bool magSetRate(uint32_t rate, uint64_t latency, void *cookie)
mTask.currentODR = st_mag40_regVal[num];
mTask.rate = rate;
mTask.latency = latency;
+ mTask.samplesToDiscard = 2;
if (trySwitchState(SENSOR_MAG_CONFIGURATION)) {
mTask.subState = CONFIG_SET_RATE;
@@ -699,6 +701,12 @@ static void parseRawData(uint8_t *raw)
float xi, yi, zi;
#endif
+ /* Discard samples generated during sensor turn-on time */
+ if (mTask.samplesToDiscard > 0) {
+ mTask.samplesToDiscard--;
+ return;
+ }
+
/* in uT */
xs = (float)raw_x * kScale_mag;
ys = (float)raw_y * kScale_mag;