/** Get amplitude for given frequency multiplied with given percentage */ uint32_t MotorVoltage::GetAmpPerc(u32fp frq, uint32_t perc) { uint32_t amp = (perc * (FP_TOINT(FP_MUL(fac, frq)) + boost)) / 100; if (frq < minFrq) { amp = 0; } if (amp > maxAmp) { amp = maxAmp; } if (frq > (maxFrq - FRQ_DRT_STR)) { s32fp diff = maxFrq - frq; diff = diff < 0 ? 0 : diff; amp = FP_TOINT(FP_MUL(FP_FROMINT(amp), FP_DIV(diff, FRQ_DRT_STR))); } return amp; }
/** Get amplitude for given frequency multiplied with given percentage */ uint32_t MotorVoltage::GetAmpPerc(u32fp frq, uint32_t perc) { uint32_t amp = (perc * (FP_TOINT(FP_MUL(fac, frq)) + boost)) / 100; if (frq < minFrq) { amp = 0; } if (amp > maxAmp) { amp = maxAmp; } return amp; }
/** * Get a parameters unscaled digit value * * @param[in] ParamNum Parameter index * @return Parameters value */ int parm_GetInt(PARAM_NUM ParamNum) { return FP_TOINT(values[ParamNum]); }