Browse Source

Added load/save gain overloads for float arrays to PID,

supports mavlink style gain get/set now


git-svn-id: https://arducopter.googlecode.com/svn/trunk@928 f9c3cf11-9bcb-44bc-f272-b75c42450872
master
james.goppert 14 years ago
parent
commit
7598c02f51
  1. 18
      libraries/PID/PID.cpp
  2. 2
      libraries/PID/PID.h

18
libraries/PID/PID.cpp

@ -132,6 +132,24 @@ PID::save_gains(int address) @@ -132,6 +132,24 @@ PID::save_gains(int address)
eeprom_write_word((uint16_t *) (address + 6), (int)_imax/100);
}
void
PID::load_gains(float * gain_array)
{
_kp = gain_array[0]/ 1000.0;
_ki = gain_array[1]/ 1000.0;
_kd = gain_array[2]/ 1000.0;
_imax = gain_array[3]/ 1000.0;
}
void
PID::save_gains(float * gain_array)
{
gain_array[0] = _kp * 1000;
gain_array[1] = _ki * 1000;
gain_array[2] = _kd * 1000;
gain_array[3] = _imax * 1000;
}
/*
float
read_EE_compressed_float(int address, byte places)

2
libraries/PID/PID.h

@ -13,6 +13,8 @@ public: @@ -13,6 +13,8 @@ public:
void reset_I();
void load_gains(int address);
void save_gains(int address);
void load_gains(float * gain_array);
void save_gains(float * gain_array);
void set_P(float p);
void set_I(float i);
void set_D(float d);

Loading…
Cancel
Save