diff --git a/UAV-ControlSystem/inc/config/eeprom.h b/UAV-ControlSystem/inc/config/eeprom.h index d2f774d..0d5fe4b 100644 --- a/UAV-ControlSystem/inc/config/eeprom.h +++ b/UAV-ControlSystem/inc/config/eeprom.h @@ -204,6 +204,13 @@ typedef enum { 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 } EEPROM_PROFILE_ID_t; diff --git a/UAV-ControlSystem/inc/system_variables.h b/UAV-ControlSystem/inc/system_variables.h index 0cc221e..607b8e1 100644 --- a/UAV-ControlSystem/inc/system_variables.h +++ b/UAV-ControlSystem/inc/system_variables.h @@ -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" diff --git a/UAV-ControlSystem/src/config/cli.c b/UAV-ControlSystem/src/config/cli.c index eb56233..98aa545 100644 --- a/UAV-ControlSystem/src/config/cli.c +++ b/UAV-ControlSystem/src/config/cli.c @@ -225,6 +225,7 @@ typedef enum /* Profile values */ /* PID value */ + //GYRO COMMAND_ID_PID_GYRO_P_ROLL, COMMAND_ID_PID_GYRO_P_PITCH, COMMAND_ID_PID_GYRO_P_YAW, @@ -237,6 +238,18 @@ typedef enum 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_P_YAW, + + COMMAND_ID_PID_ACCEL_I_ROLL, + COMMAND_ID_PID_ACCEL_I_PITCH, + COMMAND_ID_PID_ACCEL_I_YAW, + + COMMAND_ID_PID_ACCEL_D_ROLL, + COMMAND_ID_PID_ACCEL_D_PITCH, + COMMAND_ID_PID_ACCEL_D_YAW, /* Counter for the amount of commands */ COMMAND_ID_COUNT, @@ -494,44 +507,76 @@ 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, 2000} + "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, 2000} + "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, 2000} + "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, 2000} + "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, 2000} + "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, 2000} + "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, 2000} + "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, 2000} + "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, 2000} + "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} }, diff --git a/UAV-ControlSystem/src/config/eeprom.c b/UAV-ControlSystem/src/config/eeprom.c index 52c601f..27b40d8 100644 --- a/UAV-ControlSystem/src/config/eeprom.c +++ b/UAV-ControlSystem/src/config/eeprom.c @@ -249,53 +249,90 @@ EEPROM_DATA_t eeprom_profile_Arr[EEPROM_PROFILE_COUNT] = { //GYRO P VAL [EEPROM_PID_GYRO_P_ROLL] = { - .size = sizeof(PidGyroProfile.P), + .size = sizeof(PidGyroProfile.P[0]), .dataPtr = &PidGyroProfile.P[0], }, [EEPROM_PID_GYRO_P_PITCH] = { - .size = sizeof(PidGyroProfile.P), + .size = sizeof(PidGyroProfile.P[1]), .dataPtr = &PidGyroProfile.P[1], }, [EEPROM_PID_GYRO_P_YAW] = { - .size = sizeof(PidGyroProfile.P), + .size = sizeof(PidGyroProfile.P[2]), .dataPtr = &PidGyroProfile.P[2], }, //GYRO I VAL [EEPROM_PID_GYRO_I_ROLL] = { - .size = sizeof(PidGyroProfile.I), + .size = sizeof(PidGyroProfile.I[0]), .dataPtr = &PidGyroProfile.I[0], }, [EEPROM_PID_GYRO_I_PITCH] = { - .size = sizeof(PidGyroProfile.I), + .size = sizeof(PidGyroProfile.I[1]), .dataPtr = &PidGyroProfile.I[1], }, [EEPROM_PID_GYRO_I_YAW] = { - .size = sizeof(PidGyroProfile.I), + .size = sizeof(PidGyroProfile.I[2]), .dataPtr = &PidGyroProfile.I[2], }, //GYRO D VAL [EEPROM_PID_GYRO_D_ROLL] = { - .size = sizeof(PidGyroProfile.D), + .size = sizeof(PidGyroProfile.D[0]), .dataPtr = &PidGyroProfile.D[0], }, [EEPROM_PID_GYRO_D_PITCH] = { - .size = sizeof(PidGyroProfile.D), + .size = sizeof(PidGyroProfile.D[1]), .dataPtr = &PidGyroProfile.D[1], }, [EEPROM_PID_GYRO_D_YAW] = { - .size = sizeof(PidGyroProfile.D), + .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 */