ramp.c

来自「2802 步进电机控制器」· C语言 代码 · 共 50 行

C
50
字号
/*=====================================================================================
 File name:        RAMP.C  (IQ version)                  
                    
 Originator:		ECS Development

 Description:  The Ramp Control                   

=====================================================================================
 History:
-------------------------------------------------------------------------------------
 04-15-2005	Version 3.20
-------------------------------------------------------------------------------------*/

#include "IQmathLib.h"
#include "ramp.h"


void ramp_calc(RAMP *v)
{	
     _iq tmp;
       
     tmp = v->TargetIn - v->TargetOut;
     
      if (_IQabs(tmp) > _IQ(0.0000305))
      {
         v->EqualFlag = 0x0000;
         v->DelayCounter += 1;
         if (v->DelayCounter >= v->DelayRate)
         {
           if (v->TargetIn >= v->TargetOut)
           {
            v->TargetOut += _IQ(0.0000305);        // 0.0000305 is resolution of Q15
            if (v->TargetOut > v->MaxLimit)
              v->TargetOut = v->MaxLimit;           
            v->DelayCounter = 0;
           }
           else
           {
            v->TargetOut -= _IQ(0.0000305);        // 0.0000305 is resolution of Q15
            if (v->TargetOut < v->MinLimit)
              v->TargetOut = v->MinLimit;           
            v->DelayCounter = 0;
           }
         }        
      }
      else  v->EqualFlag = 0xFFFF; 
}


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?