From: Michael Wiebusch Date: Thu, 16 Apr 2015 13:02:52 +0000 (+0200) Subject: adapted PID constants to new CPU cooler and fixed the PID overflow bug X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=93ced92dc774482a60a9774db81ca9585e5506b4;p=avr.git adapted PID constants to new CPU cooler and fixed the PID overflow bug --- diff --git a/atmega32u4/cooler/cooler.c b/atmega32u4/cooler/cooler.c index 635f52e..72f4770 100644 --- a/atmega32u4/cooler/cooler.c +++ b/atmega32u4/cooler/cooler.c @@ -3,7 +3,7 @@ #include "main.h" #define SET_VAL_UPPER 30*16 //upper limit to set value -#define SET_VAL_LOWER -10*16 //lower limit to set value +#define SET_VAL_LOWER -20*16 //lower limit to set value #define MAX(x,y) (((x) > (y)) ? (x) : (y)) #define MIN(x,y) (((x) < (y)) ? (x) : (y)) @@ -349,37 +349,39 @@ void new_set_value(int16_t value){ // all constants in x/10 #define PID_CONST_PROP 800 #define PID_CONST_INT 15 -#define PID_CONST_DIFF 0 +#define PID_CONST_DIFF 1600 #define PID_ACTOR_OUTPUT_LIMIT 1023 #define PID_INTEGRAL_LIMIT 600 #define PID_FINE_INTERVAL 2*16 // within 2 degrees uint16_t pid_calculation(int16_t error) { - static int16_t intg_error = 0; + static int16_t intg_error = 0; static int16_t last_error = 0; - int16_t diff_error = error-last_error; + int16_t diff_error = error-last_error; - if( abs(error)