00001 // This file has been prepared for Doxygen automatic documentation generation. 00021 #ifndef PID_H 00022 #define PID_H 00023 00029 00030 #define K_P 1 00031 00032 #define K_I 0 00033 00034 #define K_D 0 00035 00036 #define SCALING_FACTOR 128 00037 00044 00045 #define TIME_INTERVAL 157 00046 00047 00052 struct PID_DATA{ 00054 int LAST_PROCESS_VALUE; 00056 int SUM_ERROR; 00058 int P_FACTOR; 00060 int I_FACTOR; 00062 int D_FACTOR; 00064 int MAX_ERROR; 00066 int MAX_SUM_ERROR; 00067 }; 00068 00073 // Maximum value of error 00074 #define MAXERROR 32000 00075 // Maximum value of integers 00076 #define MAX_INT 32766 00077 00078 // Boolean values 00079 #define FALSE 0 00080 #define TRUE 1 00081 00082 void Init_PID(int p_factor, int i_factor, int d_factor, struct PID_DATA *pid); 00083 int PID(int setPoint, int processValue, struct PID_DATA *pid_st); 00084 00085 #endif