mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-01-18 03:52:11 +01:00
OP-1793 - Use a constant for running average smoothing factor
This commit is contained in:
parent
bcffde5465
commit
ddd72324c3
@ -42,7 +42,9 @@
|
||||
#ifndef PIOS_MS5611_SLOW_TEMP_RATE
|
||||
#define PIOS_MS5611_SLOW_TEMP_RATE 1
|
||||
#endif
|
||||
|
||||
// Running moving average smoothing factor
|
||||
#define PIOS_MS5611_TEMP_SMOOTHING 10
|
||||
//
|
||||
/* Local Types */
|
||||
typedef struct {
|
||||
uint16_t C[6];
|
||||
@ -248,8 +250,9 @@ int32_t PIOS_MS5611_ReadADC(void)
|
||||
// Actual temperature (-40…85°C with 0.01°C resolution)
|
||||
// TEMP = 20°C + dT * TEMPSENS = 2000 + dT * C6 / 2^23
|
||||
Temperature = 2000l + ((deltaTemp * CalibData.C[5]) / POW2(23));
|
||||
if(FilteredTemperature != INT32_MIN){
|
||||
FilteredTemperature = (FilteredTemperature * 9 + Temperature) / 10;
|
||||
if (FilteredTemperature != INT32_MIN) {
|
||||
FilteredTemperature = (FilteredTemperature * (PIOS_MS5611_TEMP_SMOOTHING - 1)
|
||||
+ Temperature) / PIOS_MS5611_TEMP_SMOOTHING;
|
||||
} else {
|
||||
FilteredTemperature = Temperature;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user