[ create a new paste ] login | about

Link: http://codepad.org/rQ5QgCkd    [ raw code | fork ]

C, pasted on Dec 2:
      if (flag) {
         flag = 0;
	 #define Kp 40
	 #define Plim 200
	 
	 #define Kd 30	 
	 #define Dlim 200
	 
	 #define Ki 1
	 #define Ilim 200
	 #define IRATE 20

	  error  =  control   - position ;
	  differ =  lastError - error;
	  
	  termP  =  limit(error/16.0, -Plim, Plim);
	  	  
	  termI  =  limit((termI + (error/IRATE)), -Ilim, Ilim) ;
	  if (error == 0) termI = 0;

          termD  =  limit(differ, -Dlim, Dlim);
          	  
	  reaction = ((termP * Kp) - (termD * Kd)  + (termI * Ki));
	  	    
          reaction = limit(reaction, -255, 255);	  
	  if (ABS(reaction) < 55) reaction = 0;  // deadzone (SILENCE!)
	  
	  SetSpeed ( reaction ); 
	  prevReaction = reaction;   			
	  lastError = error;
      }


Create a new paste based on this one


Comments: