Browse Source

added direct setting of accel offsets

git-svn-id: https://arducopter.googlecode.com/svn/trunk@1160 f9c3cf11-9bcb-44bc-f272-b75c42450872
master
jasonshort 14 years ago
parent
commit
82c4815e2c
  1. 6
      libraries/AP_IMU/AP_IMU.cpp
  2. 5
      libraries/AP_IMU/AP_IMU.h

6
libraries/AP_IMU/AP_IMU.cpp

@ -224,10 +224,12 @@ AP_IMU::get_accel(void) @@ -224,10 +224,12 @@ AP_IMU::get_accel(void)
for (int i = 3; i < 6; i++) {
_adc_in[i] = _adc->Ch(_sensors[i]);
_adc_in[i] -= 2025; // Subtract typical accel bias
if (_sensor_signs[i] < 0)
_adc_in[i] = (_adc_offset[i] - _adc_in[i]);
_adc_in[i] = _adc_offset[i] - _adc_in[i];
else
_adc_in[i] = (_adc_in[i] - _adc_offset[i]);
_adc_in[i] = _adc_in[i] - _adc_offset[i];
if (fabs(_adc_in[i]) > ADC_CONSTRAINT) {
adc_constraints++; // We keep track of the number of times
_adc_in[i] = constrain(_adc_in[i], -ADC_CONSTRAINT, ADC_CONSTRAINT); // Throw out nonsensical values

5
libraries/AP_IMU/AP_IMU.h

@ -31,6 +31,11 @@ public: @@ -31,6 +31,11 @@ public:
void save_accel_eeprom(void);
void print_accel_offsets(void);
void print_gyro_offsets(void);
void ax(const int v) { _adc_offset[3] = v; }
void ay(const int v) { _adc_offset[4] = v; }
void az(const int v) { _adc_offset[5] = v; }
// raw ADC values - called by DCM
Vector3f get_gyro(void); // Radians/second

Loading…
Cancel
Save