summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArmando Visconti <armando.visconti@st.com>2017-07-10 21:08:17 +0000
committerandroid-build-merger <android-build-merger@google.com>2017-07-10 21:08:17 +0000
commit73e7572055c0a8fcd8b252b00ef400e36e6579b5 (patch)
treec73dbeee004c7de1549edccb583777b5695e769d
parent833bb9113ef6af3141944e9bd721a9c8a2bbfadc (diff)
parent26300862413fadf6aec6397af8eb036244a36a54 (diff)
downloadcontexthub-73e7572055c0a8fcd8b252b00ef400e36e6579b5.tar.gz
nanohub: drivers/st_mag40: Discard samples generated during sensor turn-on time am: c69a674cb2 am: ae710a4093 am: c7e7b8adc2
am: 2630086241 Change-Id: I966e8a5a946972bd83c7fef0f9604d3727635a4a
-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;