| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- /********************************************************************************
- **** Copyright (C), 2019, Fortior Technology Co., Ltd. ****
- ********************************************************************************
- * File Name : FU68xx_4_MDU.h
- * Author : Bruce HW&RD
- * Date : 2019-03-27
- * Description : .C file function description
- * Version : 1.0
- * Function List :
- *
- * Record :
- * 1.Date : 2019-03-27
- * Author : Bruce HW&RD
- * Modification: Created file
- ********************************************************************************/
- #ifndef __FU68XX_5_MDU_H__
- #define __FU68XX_5_MDU_H__
- /**************************************************************************************************///Including Header Files
- #include <FU68xx_5_MCU.h>
- /**************************************************************************************************///Define Macro
- /**
- * @brief 运行SMDU且不等待运行结束
- *
- * @param stan (0-3) 要启动的计算单元编号
- * @param mode (0-7) 指定计算单元的模式, 可使用@see ETypeSMDUMode 作为计算模式的设置\n
- * @ref S1MUL 有符号乘法, 计算结果左移1位 \n
- * @ref SMUL 有符号乘法 \n
- * @ref UMUL 无符号乘法 \n
- * @ref DIV 32/16无符号除法 \n
- * @ref SIN_COS Sin/Cos \n
- * @ref ATAN ATan \n
- * @ref LPF 低通 \n
- * @ref PI PI \n
- */
-
- typedef enum
- {
- S1MUL = 0, /**< 有符号乘法, 计算结果左移1位 */
- SMUL = 1, /**< 有符号乘法 */
- UMUL = 2, /**< 无符号乘法 */
- DIV = 3, /**< 32/16无符号除法 */
- SIN_COS = 4, /**< Sin/Cos */
- ATAN = 5, /**< ATan */
- LPF = 6, /**< 低通滤波 */
- PI = 7 /**< PI */
- } ETypeSMDUMode;
-
- #define SMDU_RunNoBlock(stan, mode) do \
- { \
- MDU_CR = MDUSTA0 << stan | (unsigned char)mode; \
- } while (0)
- /**
- * @brief 运行SMDU且等待运行结束
- *
- * @param stan (0-3) 要启动的计算单元编号
- * @param mode (0-7) 指定计算单元的模式, 可使用@see ETypeSMDUMode 作为计算模式的设置\n
- * @ref S1MUL 有符号乘法, 计算结果左移1位 \n
- * @ref SMUL 有符号乘法 \n
- * @ref UMUL 无符号乘法 \n
- * @ref DIV 32/16无符号除法 \n
- * @ref SIN_COS Sin/Cos \n
- * @ref ATAN ATan \n
- * @ref LPF 低通 \n
- * @ref PI PI \n
- */
- #define SMDU_RunBlock(stan, mode) do \
- { \
- SMDU_RunNoBlock(stan, mode); \
- while ((MDU_CR & MDUBSY) == MDUBSY); \
- } while (0);
- #define MuiltS1_H_MDU(iA, iB, iCh) do \
- { \
- MUL0_MA = iA;MUL0_MB = iB; SMDU_RunBlock(0 , 0); iCh = MUL0_MCH; \
- } while (0);
-
-
- #define SinCos_MDU(iCos0, iTheta, iSin0, iCos, iSin) do \
- { \
- SCAT2_COS = iCos0;\
- SCAT2_THE = iTheta;\
- SCAT2_SIN = 0; \
- SMDU_RunBlock(2,4);\
- iSin = SCAT2_RES2 ;\
- iCos = SCAT2_RES1;\
- } while (0);
- //
- #define LPF_MDU(iX, ucK, iYh, iYl) do { \
- LPF3_K = ucK;\
- LPF3_X = iX;\
- LPF3_YH = iYh;\
- LPF3_YL = iYl;\
- SMDU_RunBlock(3,6);\
- iYh = LPF3_YH;\
- iYl = LPF3_YL;\
- } while (0) ;
- #define SqrtI_alpbet(i_alp, i_bet, is) do { \
- SCAT0_COS = i_alp; \
- SCAT0_SIN = i_bet; \
- SMDU_RunBlock(0,5); \
- is = SCAT0_RES1; \
- } while (0) ;
- #define SqrtU_alpbet(u_alp, u_bet, us) do{ \
- SCAT1_COS = u_alp; \
- SCAT1_SIN = u_bet; \
- SMDU_RunBlock(1,5); \
- us = SCAT1_RES1; \
- } while (0) ;
- #endif
- // #define MuiltS1_H_MDU(iA, iB, iCh) do {
- //// MUL0_MA = iA;
- //// MUL0_MB = iB;
- //// SMDU_RunBlock(0 , 2);//无符号乘法
- //// iCh = MUL0_MCL;
- ////
- ////// MDU_CR = MDUDONE;
- //
- // } while (0) ;
-
- //#endif
|