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这个算式在完成什么作用呢