 /*This file has been prepared for Doxygen automatic documentation generation.*/
 #ifndef PID_H
 #define PID_H
 
 #include "stdint.h"
 
 #define SCALING_FACTOR  1
 
 typedef struct PID_DATA{
   int16_t lastProcessValue;
   int32_t sumError;
   int16_t P_Factor;
   int16_t I_Factor;
   int16_t D_Factor;
   int16_t maxError;
   int32_t maxSumError;
 } pidData_t;
 
 // Maximum value of variables
 #define MAX_INT         INT16_MAX
 #define MAX_LONG        INT32_MAX
 #define MAX_I_TERM      (MAX_LONG / 2)
 
 // Boolean values
 #define FALSE           0
 #define TRUE            1
 
 void pid_Init(int16_t p_factor, int16_t i_factor, int16_t d_factor, struct PID_DATA *pid);
 //int16_t pid_Controller(int16_t setPoint, int16_t processValue, struct PID_DATA *pid_st);
 int16_t pid_Controller(int16_t setPoint, int16_t processValue, int16_t errorValue, struct PID_DATA *pid_st);
 void pid_Reset_Integrator(pidData_t *pid_st);
 
 #endif

