diff options
author | Armando Visconti <armando.visconti@st.com> | 2017-07-10 21:04:17 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-07-10 21:04:17 +0000 |
commit | 26300862413fadf6aec6397af8eb036244a36a54 (patch) | |
tree | 0360f2314c51d6a97457d13ff80b72ebb282f551 | |
parent | 50cd609727eed99c48b96346ec45239decc4e0cd (diff) | |
parent | c7e7b8adc26ae0be7541b12aa663ba190b565bd0 (diff) | |
download | contexthub-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.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; |