Deleted oscilation when enableing acc

This commit is contained in:
johan9107 2016-11-17 10:59:23 +01:00
parent 3407813f1e
commit 03be1e6b40

View File

@ -325,6 +325,27 @@ void pidUAV(pidProfile_t *pidProfile, pidProfileBuff_t *pidProfileBuff)
} }
} }
uint8_t flagAccBuff = 0;
void pidAccelerometer(void)
{
static uint8_t counterAcc = 0;
counterAcc = ((flagAccBuff == 0))? 0: counterAcc;
pidUAV(&PidProfile[PID_ID_ACCELEROMETER], &PidProfileBuff[PID_ID_ACCELEROMETER]);
if (counterAcc > 50)
{
PidProfile[PID_ID_ACCELEROMETER].PID_Out[ROLL] = rc_input.Roll;
PidProfile[PID_ID_ACCELEROMETER].PID_Out[PITCH] = rc_input.Pitch;
}
else
{
counterAcc +=1;
}
}
/************************************************************************** /**************************************************************************
* BRIEF: Runs a certain PID Controller * * BRIEF: Runs a certain PID Controller *
* INFORMATION: * * INFORMATION: *
@ -354,10 +375,12 @@ void pidRun(uint8_t ID)
{ {
PidProfile[PID_ID_ACCELEROMETER].PID_Out[ROLL] = rc_input.Roll; PidProfile[PID_ID_ACCELEROMETER].PID_Out[ROLL] = rc_input.Roll;
PidProfile[PID_ID_ACCELEROMETER].PID_Out[PITCH] = rc_input.Pitch; PidProfile[PID_ID_ACCELEROMETER].PID_Out[PITCH] = rc_input.Pitch;
flagAccBuff = 0;
} }
else else
{ {
pidUAV(&PidProfile[PID_ID_ACCELEROMETER], &PidProfileBuff[PID_ID_ACCELEROMETER]); pidAccelerometer();
flagAccBuff = 1;
} }
break; break;