inline void RAMPGEN_run(RAMPGEN_Handle rampgenHandle,float32_t *pOutValue)
{
RAMPGEN_Obj *rampgen = (RAMPGEN_Obj *)rampgenHandle;
float32_t Output;
//rampgen->Freq = Freq;
//rampgen->Gain = Gain;
//rampgen->Offset = Offset;
rampgen->Angle += (rampgen->StepAngleMax * rampgen->Freq); //Compute the angle rate StepAngleMax = 0.005
if (rampgen->Angle>(1.0) ) //Saturate the angle rate within (-1,1)
{
rampgen->Angle -= (1.0);
}
else if (rampgen->Angle< (-1.0))
{
rampgen->Angle += (1.0);
}
Output = (rampgen->Angle * rampgen->Gain) + rampgen->Offset; // Compute the ramp output
if (Output > (1.0)) // Saturate the ramp output within (-1,1)
{
Output -= (1.0);
rampgen->rampExecutionCount++;
}
else if (Output < (-1.0))
{
Output += (1.0);
rampgen->rampExecutionCount++;
}
*pOutValue = Output;
return;
}
我想请问
(1)这个StepAngleMax * Freq得出的为什么就是步进的角度了
(2)还有Freq为何是SpedRef这个值
(3)函数名Rampgen_run()中的Ramp斜坡体现在哪里
(4)Output = (rampgen->Angle * rampgen->Gain) + rampgen->Offset这个算式在完成什么作用呢