Merge remote-tracking branch 'refs/remotes/origin/PID_from_eeprom' into PID
This commit is contained in:
commit
4bb2d6fdaf
@ -194,7 +194,22 @@ typedef enum {
|
||||
|
||||
/* List of all profile EEPROM values */
|
||||
typedef enum {
|
||||
EEPROM_PID_ROLL_KP = 0,
|
||||
EEPROM_PID_GYRO_P_ROLL,
|
||||
EEPROM_PID_GYRO_P_PITCH,
|
||||
EEPROM_PID_GYRO_P_YAW,
|
||||
EEPROM_PID_GYRO_I_ROLL,
|
||||
EEPROM_PID_GYRO_I_PITCH,
|
||||
EEPROM_PID_GYRO_I_YAW,
|
||||
EEPROM_PID_GYRO_D_ROLL,
|
||||
EEPROM_PID_GYRO_D_PITCH,
|
||||
EEPROM_PID_GYRO_D_YAW,
|
||||
|
||||
EEPROM_PID_ACCEL_P_ROLL,
|
||||
EEPROM_PID_ACCEL_P_PITCH,
|
||||
EEPROM_PID_ACCEL_I_ROLL,
|
||||
EEPROM_PID_ACCEL_I_PITCH,
|
||||
EEPROM_PID_ACCEL_D_ROLL,
|
||||
EEPROM_PID_ACCEL_D_PITCH,
|
||||
|
||||
/* Counts the amount of settings in profile */
|
||||
EEPROM_PROFILE_COUNT
|
||||
|
@ -14,7 +14,7 @@
|
||||
#ifndef SYSTEM_VARIABLES_H_
|
||||
#define SYSTEM_VARIABLES_H_
|
||||
|
||||
#define EEPROM_SYS_VERSION 101
|
||||
#define EEPROM_SYS_VERSION 102
|
||||
|
||||
#define ADC_STATE
|
||||
#include "stm32f4xx.h"
|
||||
|
@ -222,6 +222,32 @@ typedef enum
|
||||
COMMAND_ID_FLAG_FLIGHTMODE_3_CHANNEL,
|
||||
|
||||
|
||||
/* Profile values */
|
||||
|
||||
/* PID value */
|
||||
//GYRO
|
||||
COMMAND_ID_PID_GYRO_P_ROLL,
|
||||
COMMAND_ID_PID_GYRO_P_PITCH,
|
||||
COMMAND_ID_PID_GYRO_P_YAW,
|
||||
|
||||
COMMAND_ID_PID_GYRO_I_ROLL,
|
||||
COMMAND_ID_PID_GYRO_I_PITCH,
|
||||
COMMAND_ID_PID_GYRO_I_YAW,
|
||||
|
||||
COMMAND_ID_PID_GYRO_D_ROLL,
|
||||
COMMAND_ID_PID_GYRO_D_PITCH,
|
||||
COMMAND_ID_PID_GYRO_D_YAW,
|
||||
|
||||
//ACCEL
|
||||
COMMAND_ID_PID_ACCEL_P_ROLL,
|
||||
COMMAND_ID_PID_ACCEL_P_PITCH,
|
||||
|
||||
COMMAND_ID_PID_ACCEL_I_ROLL,
|
||||
COMMAND_ID_PID_ACCEL_I_PITCH,
|
||||
|
||||
COMMAND_ID_PID_ACCEL_D_ROLL,
|
||||
COMMAND_ID_PID_ACCEL_D_PITCH,
|
||||
|
||||
/* Counter for the amount of commands */
|
||||
COMMAND_ID_COUNT,
|
||||
|
||||
@ -265,10 +291,6 @@ const cliCommandConfig_t commandTable[COMMAND_ID_COUNT] = {
|
||||
{
|
||||
"adc_scales_right", COMMAND_ID_ADC_SCALES_RIGHT, EEPROM_ADC_SCALES, EEPROM_VALUE_TYPE_SYSTEM, 8, VAL_UINT_32, .valueRange = {0, 200}
|
||||
},
|
||||
[COMMAND_ID_PID_ROLL_KP] =
|
||||
{
|
||||
"pid_roll_kp", COMMAND_ID_PID_ROLL_KP, EEPROM_PID_ROLL_KP, EEPROM_VALUE_TYPE_PROFILE, 0, VAL_UINT_8, .valueRange = {0, 100}
|
||||
},
|
||||
[COMMAND_ID_PERIOD_SYSTEM] =
|
||||
{
|
||||
"task_period_system", COMMAND_ID_PERIOD_SYSTEM, EEPROM_PERIOD_SYSTEM, EEPROM_VALUE_TYPE_SYSTEM, 0, VAL_UINT_32, .valueRange = {0, 1000000000}
|
||||
@ -480,6 +502,79 @@ const cliCommandConfig_t commandTable[COMMAND_ID_COUNT] = {
|
||||
},
|
||||
|
||||
|
||||
//PROFILE VALUES
|
||||
//PID VALUES
|
||||
//GYRO P
|
||||
[COMMAND_ID_PID_GYRO_P_ROLL] =
|
||||
{
|
||||
"pid_gyro_p_roll", COMMAND_ID_PID_GYRO_P_ROLL, EEPROM_PID_GYRO_P_ROLL, EEPROM_VALUE_TYPE_PROFILE, 0, VAL_UINT_8, .valueRange = {0, 100}
|
||||
},
|
||||
[COMMAND_ID_PID_GYRO_P_PITCH] =
|
||||
{
|
||||
"pid_gyro_p_pitch", COMMAND_ID_PID_GYRO_P_PITCH, EEPROM_PID_GYRO_P_PITCH, EEPROM_VALUE_TYPE_PROFILE, 0, VAL_UINT_8, .valueRange = {0, 100}
|
||||
},
|
||||
[COMMAND_ID_PID_GYRO_P_YAW] =
|
||||
{
|
||||
"pid_gyro_p_yaw", COMMAND_ID_PID_GYRO_P_YAW, EEPROM_PID_GYRO_P_YAW, EEPROM_VALUE_TYPE_PROFILE, 0, VAL_UINT_8, .valueRange = {0, 100}
|
||||
},
|
||||
|
||||
//GYRO I
|
||||
[COMMAND_ID_PID_GYRO_I_ROLL] =
|
||||
{
|
||||
"pid_gyro_i_roll", COMMAND_ID_PID_GYRO_I_ROLL, EEPROM_PID_GYRO_I_ROLL, EEPROM_VALUE_TYPE_PROFILE, 0, VAL_UINT_8, .valueRange = {0, 100}
|
||||
},
|
||||
[COMMAND_ID_PID_GYRO_I_PITCH] =
|
||||
{
|
||||
"pid_gyro_i_pitch", COMMAND_ID_PID_GYRO_I_PITCH, EEPROM_PID_GYRO_I_PITCH, EEPROM_VALUE_TYPE_PROFILE, 0, VAL_UINT_8, .valueRange = {0, 100}
|
||||
},
|
||||
[COMMAND_ID_PID_GYRO_I_YAW] =
|
||||
{
|
||||
"pid_gyro_i_yaw", COMMAND_ID_PID_GYRO_I_YAW, EEPROM_PID_GYRO_I_YAW, EEPROM_VALUE_TYPE_PROFILE, 0, VAL_UINT_8, .valueRange = {0, 100}
|
||||
},
|
||||
|
||||
//GYRO D
|
||||
[COMMAND_ID_PID_GYRO_D_ROLL] =
|
||||
{
|
||||
"pid_gyro_d_roll", COMMAND_ID_PID_GYRO_D_ROLL, EEPROM_PID_GYRO_D_ROLL, EEPROM_VALUE_TYPE_PROFILE, 0, VAL_UINT_8, .valueRange = {0, 100}
|
||||
},
|
||||
[COMMAND_ID_PID_GYRO_D_PITCH] =
|
||||
{
|
||||
"pid_gyro_d_pitch", COMMAND_ID_PID_GYRO_D_PITCH, EEPROM_PID_GYRO_D_PITCH, EEPROM_VALUE_TYPE_PROFILE, 0, VAL_UINT_8, .valueRange = {0, 100}
|
||||
},
|
||||
[COMMAND_ID_PID_GYRO_D_YAW] =
|
||||
{
|
||||
"pid_gyro_d_yaw", COMMAND_ID_PID_GYRO_D_YAW, EEPROM_PID_GYRO_D_YAW, EEPROM_VALUE_TYPE_PROFILE, 0, VAL_UINT_8, .valueRange = {0, 100}
|
||||
},
|
||||
|
||||
//ACCEL P
|
||||
[COMMAND_ID_PID_ACCEL_P_ROLL] =
|
||||
{
|
||||
"pid_accel_p_roll", COMMAND_ID_PID_ACCEL_P_ROLL, EEPROM_PID_ACCEL_P_ROLL, EEPROM_VALUE_TYPE_PROFILE, 0, VAL_UINT_8, .valueRange = {0, 100}
|
||||
},
|
||||
[COMMAND_ID_PID_ACCEL_P_PITCH] =
|
||||
{
|
||||
"pid_accel_p_pitch", COMMAND_ID_PID_ACCEL_P_PITCH, EEPROM_PID_ACCEL_P_PITCH, EEPROM_VALUE_TYPE_PROFILE, 0, VAL_UINT_8, .valueRange = {0, 100}
|
||||
},
|
||||
|
||||
//ACCEL I
|
||||
[COMMAND_ID_PID_ACCEL_I_ROLL] =
|
||||
{
|
||||
"pid_accel_i_roll", COMMAND_ID_PID_ACCEL_I_ROLL, EEPROM_PID_ACCEL_I_ROLL, EEPROM_VALUE_TYPE_PROFILE, 0, VAL_UINT_8, .valueRange = {0, 100}
|
||||
},
|
||||
[COMMAND_ID_PID_ACCEL_I_PITCH] =
|
||||
{
|
||||
"pid_accel_i_pitch", COMMAND_ID_PID_ACCEL_I_PITCH, EEPROM_PID_ACCEL_I_PITCH, EEPROM_VALUE_TYPE_PROFILE, 0, VAL_UINT_8, .valueRange = {0, 100}
|
||||
},
|
||||
|
||||
//ACCEL D
|
||||
[COMMAND_ID_PID_ACCEL_D_ROLL] =
|
||||
{
|
||||
"pid_accel_d_roll", COMMAND_ID_PID_ACCEL_D_ROLL, EEPROM_PID_ACCEL_D_ROLL, EEPROM_VALUE_TYPE_PROFILE, 0, VAL_UINT_8, .valueRange = {0, 100}
|
||||
},
|
||||
[COMMAND_ID_PID_ACCEL_D_PITCH] =
|
||||
{
|
||||
"pid_accel_d_pitch", COMMAND_ID_PID_ACCEL_D_PITCH, EEPROM_PID_ACCEL_D_PITCH, EEPROM_VALUE_TYPE_PROFILE, 0, VAL_UINT_8, .valueRange = {0, 100}
|
||||
},
|
||||
|
||||
|
||||
};
|
||||
|
@ -23,6 +23,7 @@
|
||||
#include "Scheduler/scheduler.h"
|
||||
#include "drivers/failsafe_toggles.h"
|
||||
#include "drivers/motormix.h"
|
||||
#include "Flight/pid.h"
|
||||
|
||||
/* Reads the EEPROM version from EEPROM - Is compared to EEPROM_SYS_VERSION */
|
||||
uint8_t stored_eeprom_identifier;
|
||||
@ -245,11 +246,93 @@ EEPROM_DATA_t eeprom_sys_Arr[EEPROM_SYS_COUNT] = {
|
||||
|
||||
/* Data pointers and sizes for profile content */
|
||||
EEPROM_DATA_t eeprom_profile_Arr[EEPROM_PROFILE_COUNT] = {
|
||||
[EEPROM_PID_ROLL_KP] =
|
||||
//GYRO P VAL
|
||||
[EEPROM_PID_GYRO_P_ROLL] =
|
||||
{
|
||||
.size = sizeof(pid_pitch_pk),
|
||||
.dataPtr = &pid_pitch_pk,
|
||||
}
|
||||
.size = sizeof(PidGyroProfile.P[0]),
|
||||
.dataPtr = &PidGyroProfile.P[0],
|
||||
},
|
||||
[EEPROM_PID_GYRO_P_PITCH] =
|
||||
{
|
||||
.size = sizeof(PidGyroProfile.P[1]),
|
||||
.dataPtr = &PidGyroProfile.P[1],
|
||||
},
|
||||
[EEPROM_PID_GYRO_P_YAW] =
|
||||
{
|
||||
.size = sizeof(PidGyroProfile.P[2]),
|
||||
.dataPtr = &PidGyroProfile.P[2],
|
||||
},
|
||||
|
||||
//GYRO I VAL
|
||||
[EEPROM_PID_GYRO_I_ROLL] =
|
||||
{
|
||||
.size = sizeof(PidGyroProfile.I[0]),
|
||||
.dataPtr = &PidGyroProfile.I[0],
|
||||
},
|
||||
[EEPROM_PID_GYRO_I_PITCH] =
|
||||
{
|
||||
.size = sizeof(PidGyroProfile.I[1]),
|
||||
.dataPtr = &PidGyroProfile.I[1],
|
||||
},
|
||||
[EEPROM_PID_GYRO_I_YAW] =
|
||||
{
|
||||
.size = sizeof(PidGyroProfile.I[2]),
|
||||
.dataPtr = &PidGyroProfile.I[2],
|
||||
},
|
||||
|
||||
//GYRO D VAL
|
||||
[EEPROM_PID_GYRO_D_ROLL] =
|
||||
{
|
||||
.size = sizeof(PidGyroProfile.D[0]),
|
||||
.dataPtr = &PidGyroProfile.D[0],
|
||||
},
|
||||
[EEPROM_PID_GYRO_D_PITCH] =
|
||||
{
|
||||
.size = sizeof(PidGyroProfile.D[1]),
|
||||
.dataPtr = &PidGyroProfile.D[1],
|
||||
},
|
||||
[EEPROM_PID_GYRO_D_YAW] =
|
||||
{
|
||||
.size = sizeof(PidGyroProfile.D[2]),
|
||||
.dataPtr = &PidGyroProfile.D[2],
|
||||
},
|
||||
|
||||
//ACCEL P VAL
|
||||
[EEPROM_PID_ACCEL_P_ROLL] =
|
||||
{
|
||||
.size = sizeof(PidAccelerometerProfile.P[0]),
|
||||
.dataPtr = &PidAccelerometerProfile.P[0],
|
||||
},
|
||||
[EEPROM_PID_ACCEL_P_PITCH] =
|
||||
{
|
||||
.size = sizeof(PidAccelerometerProfile.P[1]),
|
||||
.dataPtr = &PidAccelerometerProfile.P[1],
|
||||
},
|
||||
|
||||
//ACCEL I VAL
|
||||
[EEPROM_PID_ACCEL_I_ROLL] =
|
||||
{
|
||||
.size = sizeof(PidAccelerometerProfile.I[0]),
|
||||
.dataPtr = &PidAccelerometerProfile.I[0],
|
||||
},
|
||||
[EEPROM_PID_ACCEL_I_PITCH] =
|
||||
{
|
||||
.size = sizeof(PidAccelerometerProfile.I[1]),
|
||||
.dataPtr = &PidAccelerometerProfile.I[1],
|
||||
},
|
||||
|
||||
//ACCEL_D_VAL
|
||||
[EEPROM_PID_ACCEL_D_ROLL] =
|
||||
{
|
||||
.size = sizeof(PidAccelerometerProfile.D[0]),
|
||||
.dataPtr = &PidAccelerometerProfile.D[0],
|
||||
},
|
||||
[EEPROM_PID_ACCEL_D_PITCH] =
|
||||
{
|
||||
.size = sizeof(PidAccelerometerProfile.D[1]),
|
||||
.dataPtr = &PidAccelerometerProfile.D[1],
|
||||
},
|
||||
|
||||
};
|
||||
|
||||
/* Data pointers and sizes for footer content */
|
||||
|
@ -45,6 +45,8 @@ void init_system()
|
||||
//Configure the clock
|
||||
system_clock_config();
|
||||
|
||||
pidInit();
|
||||
|
||||
/* read saved variables from eeprom, in most cases eeprom should be read after a lot of the initializes */
|
||||
readEEPROM();
|
||||
|
||||
@ -57,7 +59,6 @@ void init_system()
|
||||
//init motors to run with oneshot 125
|
||||
pwmEnableAllMotors(Oneshot125);
|
||||
|
||||
pidInit();
|
||||
|
||||
#ifdef USE_LEDS
|
||||
//Initialize the on board leds
|
||||
|
Reference in New Issue
Block a user