Andrew Tridgell
034fb5b194
APM: fixed hil build
2012-08-16 12:53:37 +10:00
Andrew Tridgell
518d6365ff
AP_Param: update remaining libraries for new constructor syntax
2012-08-08 12:11:57 +10:00
Andrew Tridgell
a7b9aff79f
AP_Baro: the DerivativeFilter now handles duplicate data
...
this saves a few bytes of memory
2012-08-08 12:07:36 +10:00
Andrew Tridgell
f501503eb0
AP_Baro: improved barometer averaging
...
this changes the barometer calculations to floating point. On a MS5611
this is actually about twice as fast as the previous 64 bit
calculations, but gains us more accuracy as we are able to take
advantage of sub-bit precision when we average over 8 samples.
2012-07-06 15:11:30 +10:00
Andrew Tridgell
3c7e521f70
AP_Baro: update MS5611 test to use baro library altitude
2012-07-06 15:11:30 +10:00
Andrew Tridgell
209136386b
AP_Baro: added get_pressure_samples() interface
...
this returns how many samples were used to calculate the last pressure
2012-07-05 16:29:21 +10:00
Andrew Tridgell
185c6e5b32
AP_Baro: change to a 7 point DerivativeFilter for climb rate
2012-07-05 13:00:47 +10:00
Andrew Tridgell
f9fc7aafe7
AP_Baro: use DerivativeFilter in barometer climb rate
2012-07-05 13:00:46 +10:00
Andrew Tridgell
9f8703274c
AP_Baro: show climb rate in baro test sketch
2012-07-05 13:00:45 +10:00
Andrew Tridgell
057eb5e6f6
Baro: average over all pressure/temperature samples on MS5611
...
this allows us to use the MS5611 barometer at its full 100Hz sample
rate (80Hz for pressure, 20Hz for temperature). The pressure and
temperature values are averaged between reads without adding any
latency. Previously the driver would throw away values between
readings
This also fixes a race condition in reading from the SPI bus that
could lead to bad values from the barometer
2012-07-02 13:44:53 +10:00
Andrew Tridgell
f70cd71791
Baro: fixed build of MS5611 test code
2012-07-02 13:44:53 +10:00
Andrew Tridgell
5bccfbd94c
Barometer: fixed airstart for APM
...
we need to re-load the ground pressure and temperature from eeprom on
and airstart
2012-06-27 16:01:50 +10:00
Andrew Tridgell
c387edd74c
Baro: added get_altitude() and get_climb_rate() interfaces
...
this allows the barometer driver to calibrate and return altitude and
climb rate values. This will be used by the AHRS drift correction code
for vertical velocity
The climb rate uses a 5 point average filter
2012-06-27 16:01:50 +10:00
rmackay9
5c9dc00ae2
AP_Baro: fixed comment to clarify that every-other call updates temperature or pressure
2012-06-03 17:31:17 +09:00
Andrew Tridgell
88b2139d91
Baro: added suspend/resume on init
2012-05-01 12:06:54 +10:00
rmackay9
2d65ec2874
AP_Baro - change data type size of temperature's average filter to int32_t (was int16_t)
2012-03-24 23:21:11 +09:00
rmackay9
01cc5fe938
AP_Baro - removed unnecessary 2 element average filtering of pressure (there is a 4 or 5 element average filter in arducopter code itself, two places is messy)
...
- also removed unused _offset_press variable
2012-03-18 15:18:05 +09:00
rmackay9
7560242721
AP_Baro - added average filter for temperature to replace broken filter
...
- added average filter (for last two values) for raw pressure
- changed some "long" to int32_t and "unsigned long" to uint32_t
2012-03-18 01:06:02 +09:00
Jason Short
486c56ce41
Consolidated Barometer pressure sensing to a single filter based on Randy's new filter class.
2012-03-08 23:13:04 -08:00
Jason Short
e57b91c2e2
Updated on Barometer - increased the Temp filtering and decreased the pressure filtering to and get less temp noise, faster response from pressure. I'm filtering the Climb rate differently now, so this higher pressure noise should not hurt the derivative calcs at all now.
2012-03-06 20:55:35 -08:00
rmackay9
d81c951849
AP_Baro - fixed small compiler warning to do with order of parameters in constructor
2012-02-29 22:46:29 +09:00
justinbeech
62b104cbfa
Found free extra 256 bytes of RAM eliminate _clz use from libgcc
...
Believe it or not, changing / 2^31 to >>31 saved 256 bytes in the "d" segment.
The reason is that GCC version prior to 4.3.5 does not have a count_leading_zeros (clz) assembler macro, so it uses a 256 byte lookup table called _clz
The _clz table gets pulled in if you do 64 bit division.
This tiny change is the only place that we do long long division.
Changing to a shift saves 256 bytes of ram.
2012-02-17 09:46:05 +00:00
Jason Short
026e4a6567
change constant to float 44330.0
2012-02-15 09:10:14 -08:00
Andrew Tridgell
804332c340
AP_Baro: fixed some signed/unsigned warnings
...
and a potential bug on timer wrap
2012-02-13 21:39:18 +11:00
justinbeech
69f1613f2c
Uncommented cold temp compensation after testing. Fixed read throttle so read rate ends up nailing 100hz, not 90hz. minor commenting improvements.
2012-02-13 00:00:06 +00:00
Randy Mackay
b7ce7bfe18
Arduino 1.0 - small fix to make AP_Baro_MS5611_test.pde compile under Arduino 1.0
2012-01-28 13:21:35 +09:00
Randy Mackay
ed19c25a97
Arduino 1.0 - changed all #includes of "WProgram.h", "wiring.h" and "WConstants.h to "Arduino.h".
...
Modified FastSerial's write function to return size_t (number of bytes written).
2012-01-28 12:25:47 +09:00
Andrew Tridgell
897d9a1c0b
baro: fixed an integer overflow issue at high altitudes
...
the averaging array was using 16 bit numbers, but we are storing
numbers with 19 significant bits. That caused overflow at high
altitude, and some very interesting altitude graphs!
Thanks to Michael Oborne for spotting this in a log
2012-01-14 19:51:35 +11:00
Andrew Tridgell
9fb3b13af3
AP_Baro: when I2c fails, don't retry for 1s
2012-01-04 16:35:16 +11:00
Andrew Tridgell
074fd31506
Baro: fixed MS5611 example sketch
2011-12-28 21:49:29 +11:00
Andrew Tridgell
f871235480
Baro: show timing in baro test
2011-12-28 21:43:52 +11:00
Andrew Tridgell
7ba744a11a
I2C: convert barometer library to new I2C library
...
this also adds a healthy attribute and error checking
2011-12-28 20:41:53 +11:00
Andrew Tridgell
e7720254dd
AP_Baro: update MS5611 driver for new ap_proceduce prototype
...
this saves calling millis() quite so often
2011-12-21 23:31:38 +11:00
Andrew Tridgell
bb0f179495
AP_Baro: fixed temperature on MS5611
...
this caused a 2x scaling of altitude
2011-12-17 14:58:58 +11:00
Andrew Tridgell
3648c81dd9
barometer: fixed HIL barometer build
2011-12-12 15:14:55 +11:00
Pat Hickey
f4aaa56b16
AP_Baro_MS5611: Asynchronous operation, plus c++ style changes.
...
Yeah, I know this was a big change to make all at once.
2011-12-11 15:21:10 -08:00
Pat Hickey
d026e48032
AP_Baro : Add init( AP_PeriodicProcess * ) method to interface & implementations
...
AP_Baro_MS5611 and AP_Baro_BMP085 implement the interface, with stubs only
2011-12-11 15:21:10 -08:00
Pat Hickey
a626e21e98
AP_Baro_BMP085: move apm2_hardware flag from init to constructor.
2011-12-11 15:21:10 -08:00
Pat Hickey
f3ad7f3af8
Wire and SPI Init: move to sketch system.pde from libraries
...
* Wire.begin removed from AP_Baro_BMP085::init()
* SPI.begin removed from AP_Baro_MS5611::init()
* SPI.begin removed from AP_InertialSensor_MPU6000::hardware_init()
* Both Wire.begin and SPI.begin added very early in init_ardupilot in
ArduCopter/system.pde and ArduPlane/system.pde
2011-12-11 15:21:10 -08:00
Pat Hickey
1bfab64543
AP_Baro_BMP085: Delete commented out code
...
* If its important to get old code back, thats why version control exists
2011-12-11 15:21:09 -08:00
Pat Hickey
f3270b7f13
AP_Baro_BMP085: implement AP_Baro interface
2011-12-11 15:21:09 -08:00
Pat Hickey
f52453beed
AP_Baro_MS5611: init must also perform SPI.begin
2011-12-11 15:21:09 -08:00
Pat Hickey
64eb1889ab
AP_Baro_MS5611: CS pin is arduino pin 40
2011-12-11 15:21:09 -08:00
Pat Hickey
1832ed0355
AP_Baro_MS5611: Implement AP_Baro interface
2011-12-11 15:21:09 -08:00
Pat Hickey
f0ab0318b3
AP_Baro_BMP085: Conform to AP_Baro interface. Make the rest private.
2011-12-11 15:21:09 -08:00
Pat Hickey
a41b6da263
AP_Baro_MS5611: conform to AP_Baro interface
2011-12-11 15:21:09 -08:00
Pat Hickey
d113992c10
AP_Baro: Create virtual interface
2011-12-11 15:21:09 -08:00
Pat Hickey
fdffd69257
AP_Baro_MS5611: renamed class implementation from APM_MS5611
2011-12-11 15:21:09 -08:00
Pat Hickey
c407b0d85e
AP_Baro_MS5611.h: reorganized
...
* moved ms5611 macros to c file
* reorganized class declaration & retabbed
* made Temp, Pres, and Alt private variables.
2011-12-11 15:21:09 -08:00
Pat Hickey
34cebd8a3e
AP_Baro_MS5611: Overwrote with Jose Julio's latest files.
2011-12-11 15:21:09 -08:00