diff options
author | Armando Visconti <armando.visconti@st.com> | 2017-07-10 21:08:17 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-07-10 21:08:17 +0000 |
commit | 73e7572055c0a8fcd8b252b00ef400e36e6579b5 (patch) | |
tree | c73dbeee004c7de1549edccb583777b5695e769d | |
parent | 833bb9113ef6af3141944e9bd721a9c8a2bbfadc (diff) | |
parent | 26300862413fadf6aec6397af8eb036244a36a54 (diff) | |
download | contexthub-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.c | 8 |
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; |