Merged with accelerometer. Started baro implementation, not working.
This commit is contained in:
parent
4fe18abcec
commit
f49548d141
@ -14,7 +14,7 @@
|
||||
#ifndef SYSTEM_VARIABLES_H_
|
||||
#define SYSTEM_VARIABLES_H_
|
||||
|
||||
#define EEPROM_SYS_VERSION 107
|
||||
#define EEPROM_SYS_VERSION 109
|
||||
|
||||
#define ADC_STATE
|
||||
#include "stm32f4xx.h"
|
||||
|
@ -60,7 +60,7 @@ gyro_t gyroProfile = {0}; /*Struct profile for input data from senso
|
||||
|
||||
pt1Filter_t accelFilter[2] = {0};
|
||||
|
||||
float throttleRate = 0;
|
||||
float throttleRate = 1;
|
||||
float accRollFineTune = 0;
|
||||
float accPitchFineTune = 0;
|
||||
|
||||
@ -112,7 +112,7 @@ void getCurrentValues(float sensorValues[3], uint8_t ID_profile)
|
||||
break;
|
||||
case PID_ID_BAROMETER:
|
||||
|
||||
|
||||
sensorValues[0] = barometer_GetCurrentAveragedtAltitude();
|
||||
break;
|
||||
default:
|
||||
|
||||
@ -340,7 +340,8 @@ void pidRun(uint8_t ID)
|
||||
break;
|
||||
case PID_ID_BAROMETER:
|
||||
|
||||
if (!PidProfile[PID_ID_BAROMETER].pidEnabled && flags_IsSet_ID(systemFlags_flightmode_barometer_id))
|
||||
|
||||
if (!(PidProfile[PID_ID_BAROMETER].pidEnabled && flags_IsSet_ID(systemFlags_flightmode_barometer_id)))
|
||||
{
|
||||
PidProfile[PID_ID_BAROMETER].PID_Out[0] = rc_input.Throttle*throttleRate;
|
||||
}
|
||||
@ -442,6 +443,10 @@ void pidUAVInit(pidProfile_t *pidProfile, uint8_t ID)
|
||||
PidProfile[ID].P[PITCH] = 135;
|
||||
PidProfile[ID].P[YAW] = 150;
|
||||
|
||||
PidProfile[ID].I[ROLL] = 50;
|
||||
PidProfile[ID].I[PITCH] = 50;
|
||||
PidProfile[ID].I[YAW] = 50;
|
||||
|
||||
PidProfile[ID].D[ROLL] = 75;
|
||||
PidProfile[ID].D[PITCH] = 95;
|
||||
PidProfile[ID].D[YAW] = 50;
|
||||
@ -457,16 +462,16 @@ void pidUAVInit(pidProfile_t *pidProfile, uint8_t ID)
|
||||
break;
|
||||
case PID_ID_ACCELEROMETER:
|
||||
|
||||
PidProfile[ID].P[ROLL] = 90;
|
||||
PidProfile[ID].P[PITCH] = 90;
|
||||
PidProfile[ID].P[ROLL] = 120;
|
||||
PidProfile[ID].P[PITCH] = 250;
|
||||
PidProfile[ID].P[YAW] = 0;
|
||||
|
||||
PidProfile[ID].D[ROLL] = 40;
|
||||
PidProfile[ID].D[PITCH] = 40;
|
||||
PidProfile[ID].D[ROLL] = 0;
|
||||
PidProfile[ID].D[PITCH] = 0;
|
||||
PidProfile[ID].D[YAW] = 0;
|
||||
|
||||
PidProfile[ID].PIDweight[ROLL] = 2;
|
||||
PidProfile[ID].PIDweight[PITCH] = 2;
|
||||
PidProfile[ID].PIDweight[ROLL] = 4;
|
||||
PidProfile[ID].PIDweight[PITCH] = 4;
|
||||
PidProfile[ID].PIDweight[YAW] = 100;
|
||||
|
||||
PidProfile[ID].pidEnabled = true;
|
||||
@ -477,27 +482,21 @@ void pidUAVInit(pidProfile_t *pidProfile, uint8_t ID)
|
||||
case PID_ID_COMPASS:
|
||||
|
||||
PidProfile[ID].P[ROLL] = 10;
|
||||
PidProfile[ID].P[PITCH] = 10;
|
||||
PidProfile[ID].P[YAW] = 10;
|
||||
|
||||
PidProfile[ID].PIDweight[ROLL] = 100;
|
||||
PidProfile[ID].PIDweight[PITCH] = 100;
|
||||
PidProfile[ID].PIDweight[YAW] = 100;
|
||||
|
||||
PidProfile[ID].pidEnabled = false;
|
||||
|
||||
break;
|
||||
case PID_ID_BAROMETER:
|
||||
|
||||
PidProfile[ID].P[ROLL] = 10;
|
||||
PidProfile[ID].P[PITCH] = 10;
|
||||
PidProfile[ID].P[YAW] = 10;
|
||||
PidProfile[ID].P[ROLL] = 1;
|
||||
|
||||
PidProfile[ID].PIDweight[ROLL] = 100;
|
||||
PidProfile[ID].PIDweight[PITCH] = 100;
|
||||
PidProfile[ID].PIDweight[YAW] = 100;
|
||||
|
||||
PidProfile[ID].pidEnabled = false;
|
||||
PidProfile[ID].dterm_lpf = 90;
|
||||
PidProfile[ID].pid_out_limit = 1000;
|
||||
|
||||
break;
|
||||
default:
|
||||
@ -528,9 +527,8 @@ void pidInit()
|
||||
|
||||
void pidEproom(void)
|
||||
{
|
||||
PidProfile[PID_ID_BAROMETER].PIDweight[ROLL] = 200;
|
||||
|
||||
PidProfile[PID_ID_ACCELEROMETER].PIDweight[ROLL] = 4;
|
||||
PidProfile[PID_ID_ACCELEROMETER].PIDweight[PITCH] = 4;
|
||||
PidProfile[PID_ID_ACCELEROMETER].PIDweight[YAW] = 100;
|
||||
|
||||
PidProfileBuff[PID_ID_GYRO].dT = SystemTasks[TASK_GYROPID].desiredPeriod/1000; //<2F>NDRA TILL SEKUNDER inte ms
|
||||
|
@ -679,14 +679,14 @@ const cliCommandConfig_t commandTable[COMMAND_ID_COUNT] = {
|
||||
},
|
||||
|
||||
//BARO I
|
||||
[COMMAND_ID_PID_ACCEL_I_PITCH] =
|
||||
[COMMAND_ID_PID_BARO_I_HEIGHT] =
|
||||
{
|
||||
"pid_baro_i_height", COMMAND_ID_PID_BARO_I_HEIGHT, EEPROM_PID_BAROMETER, EEPROM_VALUE_TYPE_PROFILE, 8, VAL_UINT_8, .valueRange = {0, 255}
|
||||
},
|
||||
//BARO D
|
||||
[COMMAND_ID_PID_ACCEL_D_PITCH] =
|
||||
[COMMAND_ID_PID_BARO_D_HEIGHT] =
|
||||
{
|
||||
"pid_baro_d_height", COMMAND_ID_PID_ACCEL_D_PITCH, EEPROM_PID_BAROMETER, EEPROM_VALUE_TYPE_PROFILE, 11, VAL_UINT_8, .valueRange = {0, 255}
|
||||
"pid_baro_d_height", COMMAND_ID_PID_BARO_D_HEIGHT, EEPROM_PID_BAROMETER, EEPROM_VALUE_TYPE_PROFILE, 11, VAL_UINT_8, .valueRange = {0, 255}
|
||||
},
|
||||
|
||||
//BARO Filters and limits
|
||||
|
@ -40,9 +40,9 @@ flags_Configuration_t flagConfigArr[FLAG_CONFIGURATION_COUNT] = {
|
||||
.flagId = systemFlags_flightmode_acceleromter_id,
|
||||
},
|
||||
[FLAG_CONFIGURATION_FLIGHTMODE_BAROMETER] = {
|
||||
.minRange = 0,
|
||||
.maxRange = 0,
|
||||
.channelNumber = 0,
|
||||
.minRange = 1900,
|
||||
.maxRange = 2100,
|
||||
.channelNumber = 6,
|
||||
.flagId = systemFlags_flightmode_barometer_id,
|
||||
},
|
||||
[FLAG_CONFIGURATION_FLIGHTMODE_COMPASS] = {
|
||||
|
@ -258,7 +258,7 @@ void systemTaskAltitude(void)
|
||||
//double temperature = barometer_GetCurrentTemperature();
|
||||
//double pressure = barometer_GetCurrentPreassure();
|
||||
//float altitute = barometer_GetCurrentAltitude();
|
||||
float altitute = barometer_GetCurrentAveragedtAltitude();
|
||||
//float altitute = barometer_GetCurrentAveragedtAltitude();
|
||||
|
||||
//pid run, should probably be moved to systemTaskAltitude
|
||||
pidRun(PID_ID_BAROMETER);
|
||||
|
Reference in New Issue
Block a user