123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- /************************************************************************
- Project: Welling Motor Control Paltform
- Filename: mathtool.h
- Partner Filename: mathtool.c
- Description: The header file of mathtool.c
- Complier: IAR Embedded Workbench for ARM 7.80, IAR Systems.
- CPU TYPE : GD32F3x0
- *************************************************************************
- Copyright (c) 2018 Welling Motor Technology(Shanghai) Co. Ltd.
- All rights reserved.
- *************************************************************************
- *************************************************************************
- Revising History (ECL of this file):
- ************************************************************************/
- /************************************************************************
- Beginning of File, do not put anything above here except notes
- Compiler Directives:
- *************************************************************************/
- #ifndef MATHTOOL_H
- #define MATHTOOL_H
- /************************************************************************
- Modules used (included header files)
- *************************************************************************/
- /************************************************************************
- Compiler Directives (N/A)
- *************************************************************************/
- #ifdef _MATHTOOL_C_
- #define _MATHTOOL_EXT
- #else
- #define _MATHTOOL_EXT extern
- #endif
- /************************************************************************
- Definitions & Macros (#define ...)
- *************************************************************************/
- #define SINTABSIZE 256 + 1
- #define ARCTANTABSIZE 16
- #define SINCOS_DEFAULT \
- { \
- 0, 0 \
- } // Default value of SINCOS_DEFAULT
- #define ARCTAN_IN_DEFAULT \
- { \
- 0, 0 \
- } // Default value of ARCTAN_IN
- /************************************************************************
- TypeDefs & Structure defines
- *************************************************************************/
- typedef struct
- { // Outputs of sin-cos table
- SWORD swSinPu; // Q15 Output SIN
- SWORD swCosPu; // Q15 Output COS
- } SINCOS; // Struct of sin&cos
- typedef struct
- { // Outputs of LPF
- UWORD uwKx; // Q15
- SLONG_UNION slY; // Q?+Q16
- } LPF_OUT; // Struct of LPF_OUT
- typedef struct
- {
- SWORD swAlphaPu; // Alpha axis component
- SWORD swBetaPu; // Beta axis component
- } ARCTAN_IN;
- /************************************************************************
- Constant Table
- *************************************************************************/
- /************************************************************************
- Exported Variables (Start definitions w/ _MATHTOOL_EXT)
- *************************************************************************/
- #ifdef _MATHTOOL_C_
- _MATHTOOL_EXT SINCOS mth_stSinCosPu = SINCOS_DEFAULT;
- _MATHTOOL_EXT ARCTAN_IN mth_stArctanIn = ARCTAN_IN_DEFAULT;
- #else
- _MATHTOOL_EXT SINCOS mth_stSinCosPu;
- _MATHTOOL_EXT ARCTAN_IN mth_stArctanIn;
- #endif
- /************************************************************************
- Exported Function Call Prototypes (Start definitions w/ _MATHTOOL_EXT)
- *************************************************************************/
- #ifdef _MATHTOOL_C_
- _MATHTOOL_EXT void mth_voSinCos(UWORD angle, SINCOS *v);
- _MATHTOOL_EXT void mth_voLPFilterCoef(ULONG ulLpfTime_us, ULONG ulExeFreq, UWORD *uwLPFCof);
- _MATHTOOL_EXT void mth_voLPFilter(SWORD swLpfIn, LPF_OUT *out);
- _MATHTOOL_EXT SLONG mth_slSqrt(SLONG slInput);
- _MATHTOOL_EXT SLONG mth_slRamp(SLONG slInput, SLONG slDelta, SLONG slOutputLimit);
- _MATHTOOL_EXT SWORD mth_voArctan(ARCTAN_IN *in);
- #else
- _MATHTOOL_EXT void mth_voSinCos(UWORD angle, SINCOS *v);
- _MATHTOOL_EXT void mth_voLPFilterCoef(ULONG ulLpfTime_us, ULONG ulExeFreq, UWORD *uwLPFCof);
- _MATHTOOL_EXT void mth_voLPFilter(SWORD swLpfIn, LPF_OUT *out);
- _MATHTOOL_EXT SLONG mth_slSqrt(SLONG slInput);
- _MATHTOOL_EXT SLONG mth_slRamp(SLONG slInput, SLONG slDelta, SLONG slOutputLimit);
- _MATHTOOL_EXT SWORD mth_voArctan(ARCTAN_IN *in);
- #endif
- /************************************************************************
- RAM ALLOCATION: N/A
- *************************************************************************/
- /************************************************************************
- Flag Define (N/A)
- *************************************************************************/
- /************************************************************************/
- #endif
- /*************************************************************************
- Copyright (c) 2011 Welling Motor Technology(Shanghai) Co. Ltd.
- All rights reserved.
- *************************************************************************
- End of this File (EOF):
- Do not put anything after this part!
- *************************************************************************/
|