mirror of https://github.com/ArduPilot/ardupilot
Baro
Minimized the baro filtering to use a new approach to rate control. Redid the state machine so the temp is sampled more often.
This commit is contained in:
parent
81de29e398
commit
c3d8775797
|
@ -95,7 +95,7 @@ void APM_BMP085_Class::Init(int initialiseWireLib)
|
|||
BMP085_State = 1;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
// Read the sensor. This is a state machine
|
||||
// We read one time Temperature (state=1) and then 4 times Pressure (states 2-5)
|
||||
uint8_t APM_BMP085_Class::Read()
|
||||
|
@ -130,6 +130,30 @@ uint8_t APM_BMP085_Class::Read()
|
|||
}
|
||||
return(result);
|
||||
}
|
||||
*/
|
||||
// Read the sensor. This is a state machine
|
||||
// We read one time Temperature (state=1) and then 4 times Pressure (states 2-5)
|
||||
uint8_t APM_BMP085_Class::Read()
|
||||
{
|
||||
uint8_t result = 0;
|
||||
|
||||
if (BMP085_State == 1){
|
||||
if (digitalRead(BMP085_EOC)){
|
||||
BMP085_State = 2;
|
||||
ReadTemp(); // On state 1 we read temp
|
||||
Command_ReadPress();
|
||||
}
|
||||
}else{
|
||||
if (digitalRead(BMP085_EOC)){
|
||||
BMP085_State = 1; // Start again from state = 1
|
||||
ReadPress();
|
||||
Calculate();
|
||||
Command_ReadTemp(); // Read Temp
|
||||
result = 1; // New pressure reading
|
||||
}
|
||||
}
|
||||
return(result);
|
||||
}
|
||||
|
||||
|
||||
// Send command to Read Pressure
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#ifndef APM_BMP085_h
|
||||
#define APM_BMP085_h
|
||||
|
||||
#define TEMP_FILTER_SIZE 16
|
||||
#define PRESS_FILTER_SIZE 10
|
||||
#define TEMP_FILTER_SIZE 2
|
||||
#define PRESS_FILTER_SIZE 2
|
||||
|
||||
#include "APM_BMP085_hil.h"
|
||||
|
||||
|
@ -13,6 +13,7 @@ class APM_BMP085_Class
|
|||
_temp_index(0),
|
||||
_press_index(0){}; // Constructor
|
||||
int32_t RawPress;
|
||||
int32_t _offset_press;
|
||||
int32_t RawTemp;
|
||||
int16_t Temp;
|
||||
int32_t Press;
|
||||
|
@ -32,7 +33,6 @@ class APM_BMP085_Class
|
|||
|
||||
int _temp_filter[TEMP_FILTER_SIZE];
|
||||
int _press_filter[PRESS_FILTER_SIZE];
|
||||
long _offset_press;
|
||||
long _offset_temp;
|
||||
|
||||
uint8_t _temp_index;
|
||||
|
|
Loading…
Reference in New Issue