void max21100InitialBias(void) { uint32_t lastUpdate = max21100Data.lastUpdate; float tempSum; int i; tempSum = 0.0f; for (i = 0; i < 50; i++) { while (lastUpdate == max21100Data.lastUpdate) delay(1); lastUpdate = max21100Data.lastUpdate; tempSum += max21100Data.rawTemp; } max21100Data.temp = tempSum / 50.0f; utilFilterReset(&max21100Data.tempFilter, max21100Data.temp); }
// larger tau, smoother filter void utilFilterInit(utilFilter_t *f, float dt, float tau, float setpoint) { f->tc = dt / tau; utilFilterReset(f, setpoint); }
void utilFilterReset3(utilFilter_t *f, float setpoint) { utilFilterReset(&f[0], setpoint); utilFilterReset(&f[1], setpoint); utilFilterReset(&f[2], setpoint); }