Andrew Tridgell
f2e160a5e7
AP_Baro: removed _sync_access check
...
this isn't needed as the common variables are already protected by
cli()/sei()
2012-09-20 17:34:33 +10:00
uncrustify
52bc9843af
uncrustify libraries/AP_Baro/AP_Baro_BMP085_hil.h
2012-08-21 19:19:51 -07:00
uncrustify
14aab7e878
uncrustify libraries/AP_Baro/AP_Baro.h
2012-08-21 19:00:51 -07:00
uncrustify
963e250dca
uncrustify libraries/AP_Baro/AP_Baro_MS5611.h
2012-08-21 19:00:50 -07:00
uncrustify
dbb7b33728
uncrustify libraries/AP_Baro/AP_Baro_BMP085.h
2012-08-21 19:00:50 -07:00
uncrustify
1e86bf09de
uncrustify libraries/AP_Baro/AP_Baro_BMP085.cpp
2012-08-21 19:00:18 -07:00
uncrustify
bd4f1179b1
uncrustify libraries/AP_Baro/AP_Baro_MS5611.cpp
2012-08-21 19:00:18 -07:00
uncrustify
46c682454a
uncrustify libraries/AP_Baro/AP_Baro_BMP085_hil.cpp
2012-08-21 19:00:18 -07:00
uncrustify
2444811dfe
uncrustify libraries/AP_Baro/AP_Baro.cpp
2012-08-21 19:00:18 -07:00
uncrustify
003a60d5f6
uncrustify libraries/AP_Baro/examples/AP_Baro_MS5611_test/AP_Baro_MS5611_test.pde
2012-08-21 19:00:18 -07:00
uncrustify
990ad20db5
uncrustify libraries/AP_Baro/examples/AP_Baro_BMP085_test/AP_Baro_BMP085_test.pde
2012-08-21 19:00:17 -07:00
Andrew Tridgell
7d8903a8bf
AP_Baro: the HIL baro needs to inherit calibrate() from the parent class
...
this was what caused the renorm errors
2012-08-18 16:32:23 +10:00
Andrew Tridgell
9c3c1c4f54
APM: fixed hil build
2012-08-16 12:53:37 +10:00
Andrew Tridgell
e9d0ae3e7f
AP_Param: update remaining libraries for new constructor syntax
2012-08-08 12:11:57 +10:00
Andrew Tridgell
b0e403e6fb
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
44755bf3ce
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
4723698489
AP_Baro: update MS5611 test to use baro library altitude
2012-07-06 15:11:30 +10:00
Andrew Tridgell
735c88e9b3
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
999a1d1d55
AP_Baro: change to a 7 point DerivativeFilter for climb rate
2012-07-05 13:00:47 +10:00
Andrew Tridgell
a5d607d25a
AP_Baro: use DerivativeFilter in barometer climb rate
2012-07-05 13:00:46 +10:00
Andrew Tridgell
cf2c546051
AP_Baro: show climb rate in baro test sketch
2012-07-05 13:00:45 +10:00
Andrew Tridgell
7a77832f45
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
f7b06e0a64
Baro: fixed build of MS5611 test code
2012-07-02 13:44:53 +10:00
Andrew Tridgell
57579e494b
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
53e950531e
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
bad6591e6d
AP_Baro: fixed comment to clarify that every-other call updates temperature or pressure
2012-06-03 17:31:17 +09:00
Andrew Tridgell
ae1702c20b
Baro: added suspend/resume on init
2012-05-01 12:06:54 +10:00
rmackay9
dc58c8a905
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
f3eb15167c
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
ed0d1da4f5
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
13e9608fb8
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
34cf1e8fb3
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
0311b70004
AP_Baro - fixed small compiler warning to do with order of parameters in constructor
2012-02-29 22:46:29 +09:00
justinbeech
5255512bf9
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
8e88d9e19e
change constant to float 44330.0
2012-02-15 09:10:14 -08:00
Andrew Tridgell
e70e1814ac
AP_Baro: fixed some signed/unsigned warnings
...
and a potential bug on timer wrap
2012-02-13 21:39:18 +11:00
justinbeech
4b0c71d6ac
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
2e1e34fb9c
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
98f3386ea0
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
817e7442bd
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
a7a00a35ab
AP_Baro: when I2c fails, don't retry for 1s
2012-01-04 16:35:16 +11:00
Andrew Tridgell
671d0b82ad
Baro: fixed MS5611 example sketch
2011-12-28 21:49:29 +11:00
Andrew Tridgell
c448e85ed1
Baro: show timing in baro test
2011-12-28 21:43:52 +11:00
Andrew Tridgell
2960abf41f
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
5b75458502
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
0c8c707980
AP_Baro: fixed temperature on MS5611
...
this caused a 2x scaling of altitude
2011-12-17 14:58:58 +11:00
Andrew Tridgell
de5c1c5147
barometer: fixed HIL barometer build
2011-12-12 15:14:55 +11:00
Pat Hickey
5819f99986
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
3d882c4d49
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
d5386b8bb8
AP_Baro_BMP085: move apm2_hardware flag from init to constructor.
2011-12-11 15:21:10 -08:00