#include "headfile.h"
#include "ADC.h"
#include "FUNCTION.h"
void SteerPID_Realize(float offset)
{
//当前误差,定义为寄存器变量,只能用于整型和字符型变量,提高运算速度
float iError, //当前误差
SteerErr,LastError; //
int PWM;
int P,D;
float LimitLeft,LimitRight;
int16 steer_middle = 760.0;
// static int err_sum = 0;
iError = offset; //计算当前误差
SteerErr =P * iError +D * (iError - LastError); //位置式PID算式
LastError = iError; //更新上次误差
PWM = steer_middle - SteerErr;
if (PWM < 0)
PWM = 0;
LimitLeft(660.0);
LimitRight(860.0); //限幅
// if(SystemData.Point>70) { PWM=steer_right;}
// if(SystemData.Point<10) { PWM=steer_left;}
SteerControl(PWM);
}