HPM SDK
HPMicro Software Development Kit
HPMicro MCL MATH APIs

Macros

#define HPM_MOTOR_MATH_MOD_Q_SW   (1)
 Motor library using mathematical format. More...
 
#define HPM_MOTOR_MATH_MOD_Q_HW   (2)
 
#define HPM_MOTOR_MATH_MOD_DSP_FP   (3)
 
#define HPM_MOTOR_MATH_MOD_Q_ALL   (4)
 
#define HPM_MOTOR_MATH_MOD_FP   (5)
 
#define HPM_QMATH_MOD_Q15   (15)
 Q-format. More...
 
#define HPM_QMATH_MOD_Q31   (31)
 
#define HPM_MOTOR_MATH_MOD   HPM_MOTOR_MATH_MOD_FP
 User-defined profiles. More...
 
#define HPM_QMATH_N   HPM_QMATH_MOD_Q31
 
#define HPM_SOFT_Q_N   (15)
 
#define HPM_MOTOR_MATH_FL_MDF(from_f32)   (from_f32)
 
#define HPM_MOTOR_MATH_MDF_FL(from_mdf)   (from_mdf)
 
#define HPM_MOTOR_MATH_MUL(x, y)   (x*y)
 
#define HPM_MOTOR_MATH_DIV(x, y)   (x/y)
 
#define HPM_MOTOR_MATH_ATAN2(x, y)   atan2(x, y)
 
#define HPM_MOTOR_MATH_ATAN(x)   atan(x)
 
#define HPM_MOTOR_MATH_FABS(x)   abs(x)
 

Typedefs

typedef float HPM_MOTOR_MATH_TYPE
 

Functions

HPM_MOTOR_MATH_TYPE hpm_dsp_hw_f32_q (float from_f32)
 Floating point to Q format conversion. More...
 
float hpm_dsp_hw_q_f32 (HPM_MOTOR_MATH_TYPE from_mdf)
 Q format to floating point conversion. More...
 
HPM_MOTOR_MATH_TYPE hpm_dsp_hw_mul_q (HPM_MOTOR_MATH_TYPE x, HPM_MOTOR_MATH_TYPE y)
 Q-format multiplication. More...
 
HPM_MOTOR_MATH_TYPE hpm_dsp_hw_div_q (HPM_MOTOR_MATH_TYPE x, HPM_MOTOR_MATH_TYPE y)
 Q-format division. More...
 
HPM_MOTOR_MATH_TYPE hpm_dsp_hw_atan_q (HPM_MOTOR_MATH_TYPE x)
 Q-format atan. More...
 
HPM_MOTOR_MATH_TYPE hpm_dsp_hw_atan2_q (HPM_MOTOR_MATH_TYPE x, HPM_MOTOR_MATH_TYPE y)
 Q-format atan2. More...
 
HPM_MOTOR_MATH_TYPE hpm_dsp_hw_abs_q (HPM_MOTOR_MATH_TYPE x)
 Q-format absolute. More...
 
HPM_MOTOR_MATH_TYPE hpm_dsp_hw_mul_fp (HPM_MOTOR_MATH_TYPE x, HPM_MOTOR_MATH_TYPE y)
 Floating-point multiplication. More...
 
HPM_MOTOR_MATH_TYPE hpm_dsp_hw_div_fp (HPM_MOTOR_MATH_TYPE x, HPM_MOTOR_MATH_TYPE y)
 Floating-point division. More...
 
HPM_MOTOR_MATH_TYPE hpm_dsp_hw_atan_fp (HPM_MOTOR_MATH_TYPE x)
 Floating-point atan. More...
 
HPM_MOTOR_MATH_TYPE hpm_dsp_hw_atan2_fp (HPM_MOTOR_MATH_TYPE x, HPM_MOTOR_MATH_TYPE y)
 Floating-point atan2. More...
 
HPM_MOTOR_MATH_TYPE hpm_dsp_hw_abs_fp (HPM_MOTOR_MATH_TYPE x)
 Floating-point absolute. More...
 
static HPM_MOTOR_MATH_TYPE soft_conv_float_to_q31 (float x)
 
static float soft_conv_q31_to_float (HPM_MOTOR_MATH_TYPE x)
 

Detailed Description

Macro Definition Documentation

◆ HPM_MOTOR_MATH_ATAN

#define HPM_MOTOR_MATH_ATAN (   x)    atan(x)

◆ HPM_MOTOR_MATH_ATAN2

#define HPM_MOTOR_MATH_ATAN2 (   x,
 
)    atan2(x, y)

◆ HPM_MOTOR_MATH_DIV

#define HPM_MOTOR_MATH_DIV (   x,
 
)    (x/y)

◆ HPM_MOTOR_MATH_FABS

#define HPM_MOTOR_MATH_FABS (   x)    abs(x)

◆ HPM_MOTOR_MATH_FL_MDF

#define HPM_MOTOR_MATH_FL_MDF (   from_f32)    (from_f32)

◆ HPM_MOTOR_MATH_MDF_FL

#define HPM_MOTOR_MATH_MDF_FL (   from_mdf)    (from_mdf)

◆ HPM_MOTOR_MATH_MOD

#define HPM_MOTOR_MATH_MOD   HPM_MOTOR_MATH_MOD_FP

#include <middleware/hpm_mcl/inc/hpm_motor_math.h>

User-defined profiles.

◆ HPM_MOTOR_MATH_MOD_DSP_FP

#define HPM_MOTOR_MATH_MOD_DSP_FP   (3)

#include <middleware/hpm_mcl/inc/hpm_motor_math.h>

dsp hardware floating point unit

◆ HPM_MOTOR_MATH_MOD_FP

#define HPM_MOTOR_MATH_MOD_FP   (5)

#include <middleware/hpm_mcl/inc/hpm_motor_math.h>

hardware floating point unit

◆ HPM_MOTOR_MATH_MOD_Q_ALL

#define HPM_MOTOR_MATH_MOD_Q_ALL   (4)

#include <middleware/hpm_mcl/inc/hpm_motor_math.h>

Qmath soft ware and hardware

◆ HPM_MOTOR_MATH_MOD_Q_HW

#define HPM_MOTOR_MATH_MOD_Q_HW   (2)

#include <middleware/hpm_mcl/inc/hpm_motor_math.h>

Qmath hardware

◆ HPM_MOTOR_MATH_MOD_Q_SW

#define HPM_MOTOR_MATH_MOD_Q_SW   (1)

#include <middleware/hpm_mcl/inc/hpm_motor_math.h>

Motor library using mathematical format.

Qmath software

◆ HPM_MOTOR_MATH_MUL

#define HPM_MOTOR_MATH_MUL (   x,
 
)    (x*y)

◆ HPM_QMATH_MOD_Q15

#define HPM_QMATH_MOD_Q15   (15)

◆ HPM_QMATH_MOD_Q31

#define HPM_QMATH_MOD_Q31   (31)

◆ HPM_QMATH_N

#define HPM_QMATH_N   HPM_QMATH_MOD_Q31

◆ HPM_SOFT_Q_N

#define HPM_SOFT_Q_N   (15)

Typedef Documentation

◆ HPM_MOTOR_MATH_TYPE

Function Documentation

◆ hpm_dsp_hw_abs_fp()

HPM_MOTOR_MATH_TYPE hpm_dsp_hw_abs_fp ( HPM_MOTOR_MATH_TYPE  x)

#include <middleware/hpm_mcl/inc/hpm_motor_math.h>

Floating-point absolute.

Parameters
[in]xdata
Returns
|x|

◆ hpm_dsp_hw_abs_q()

HPM_MOTOR_MATH_TYPE hpm_dsp_hw_abs_q ( HPM_MOTOR_MATH_TYPE  x)

#include <middleware/hpm_mcl/inc/hpm_motor_math.h>

Q-format absolute.

Parameters
[in]xdata
Returns
|data|

◆ hpm_dsp_hw_atan2_fp()

HPM_MOTOR_MATH_TYPE hpm_dsp_hw_atan2_fp ( HPM_MOTOR_MATH_TYPE  x,
HPM_MOTOR_MATH_TYPE  y 
)

#include <middleware/hpm_mcl/inc/hpm_motor_math.h>

Floating-point atan2.

Parameters
[in]xdata
[in]ydata
Returns
atan2(x,y)

◆ hpm_dsp_hw_atan2_q()

HPM_MOTOR_MATH_TYPE hpm_dsp_hw_atan2_q ( HPM_MOTOR_MATH_TYPE  x,
HPM_MOTOR_MATH_TYPE  y 
)

#include <middleware/hpm_mcl/inc/hpm_motor_math.h>

Q-format atan2.

Parameters
[in]xdata
[in]ydata
Returns
atan(x, y)

◆ hpm_dsp_hw_atan_fp()

HPM_MOTOR_MATH_TYPE hpm_dsp_hw_atan_fp ( HPM_MOTOR_MATH_TYPE  x)

#include <middleware/hpm_mcl/inc/hpm_motor_math.h>

Floating-point atan.

Parameters
[in]xdata
Returns
atan(x)

◆ hpm_dsp_hw_atan_q()

HPM_MOTOR_MATH_TYPE hpm_dsp_hw_atan_q ( HPM_MOTOR_MATH_TYPE  x)

#include <middleware/hpm_mcl/inc/hpm_motor_math.h>

Q-format atan.

Parameters
[in]xdata
Returns
atan(x)

◆ hpm_dsp_hw_div_fp()

#include <middleware/hpm_mcl/inc/hpm_motor_math.h>

Floating-point division.

Parameters
[in]xdata
[in]ydata
Returns
x/y

◆ hpm_dsp_hw_div_q()

#include <middleware/hpm_mcl/inc/hpm_motor_math.h>

Q-format division.

Parameters
[in]xdata
[in]ydata
Returns
x/y

◆ hpm_dsp_hw_f32_q()

HPM_MOTOR_MATH_TYPE hpm_dsp_hw_f32_q ( float  from_f32)

#include <middleware/hpm_mcl/inc/hpm_motor_math.h>

Floating point to Q format conversion.

Parameters
[in]from_f32Floating point
Returns
HPM_MOTOR_MATH_TYPE

◆ hpm_dsp_hw_mul_fp()

#include <middleware/hpm_mcl/inc/hpm_motor_math.h>

Floating-point multiplication.

Parameters
[in]xdata
[in]ydata
Returns
x*y

◆ hpm_dsp_hw_mul_q()

#include <middleware/hpm_mcl/inc/hpm_motor_math.h>

Q-format multiplication.

Parameters
[in]xdata
[in]ydata
Returns
x*y

◆ hpm_dsp_hw_q_f32()

float hpm_dsp_hw_q_f32 ( HPM_MOTOR_MATH_TYPE  from_mdf)

#include <middleware/hpm_mcl/inc/hpm_motor_math.h>

Q format to floating point conversion.

Parameters
[in]from_mdfQ format
Returns
float

◆ soft_conv_float_to_q31()

static HPM_MOTOR_MATH_TYPE soft_conv_float_to_q31 ( float  x)
inlinestatic

◆ soft_conv_q31_to_float()

static float soft_conv_q31_to_float ( HPM_MOTOR_MATH_TYPE  x)
inlinestatic