[an error occurred while processing this directive]
|
signed int pid_control(signed char setpoint, signed char currentpoint)
{
static signed int last_error;
signed int P;
signed int D;
static signed int I;
signed int PID;
P = (setpoint - currentpoint);
I = (I + (setpoint - currentpoint) * INTERVAL);
D = (((setpoint - currentpoint) - last_error) / INTERVAL);
last_error = setpoint - currentpoint;
PID = (Kp * P) + (Ki * I) + (Kd * D);
return (PID);
}
E-mail: info@telesys.ru