ADDFUNCTION.H 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. /* --------------------------- (C) COPYRIGHT 2020 Fortiortech ShenZhen -----------------------------
  2. File Name : AddFunction.h
  3. Author : Fortiortech Appliction Team
  4. Version : V1.0
  5. Date : 2021-11-07
  6. Description : This file contains all the common data types used for Motor Control.
  7. ----------------------------------------------------------------------------------------------------
  8. All Rights Reserved
  9. ------------------------------------------------------------------------------------------------- */
  10. /* Define to prevent recursive inclusion -------------------------------------*/
  11. #ifndef __AddFunction_H_
  12. #define __AddFunction_H_
  13. /******************************************************************************/
  14. #include <FU68xx_5.h>
  15. /******************************************************************************/
  16. /* Exported types ------------------------------------------------------------*/
  17. typedef struct
  18. {
  19. uint32 Times; // 启停次数
  20. uint16 TimeCnt; // 运行时间计数
  21. uint8 State; // 启停状态
  22. } debugONOFFTypeDef;
  23. typedef struct
  24. {
  25. uint16 LedCount; // 闪灯周期计数
  26. uint16 Counttime; // 闪灯周期
  27. uint16 Count; // 电平翻转计数
  28. uint8 LedTimCot; // 闪灯次数计数
  29. }MCLedDisplay;
  30. typedef struct // !!!!!!!该结构体如需添加新变量,需放在该结构体最后添加 !!!!!
  31. {
  32. uint16 mcDcbusFlt; // 母线电压 // !!!!!!!该结构体如需添加新变量,需放在该结构体最后添加 !!!
  33. uint8 CtrlMode; // 控制模式
  34. uint16 mcADCCurrentbus; // 母线电流
  35. int16 Power; // 当前功率
  36. int16 PowerFlt; // 功率滤波后的值 // !!!!!!!该结构体如需添加新变量,需放在该结构体最后添加 !!!!
  37. int16 SpeedFlt; // 当前速度滤波后的值
  38. int16 UqFlt; // Q轴电压
  39. int16 UdFlt; // D轴电压
  40. uint8 ChargeStep; // 预充电的步骤 // !!!!!!!该结构体如需添加新变量,需放在该结构体最后添加 !!!!
  41. uint8 Start_Mode; // 启动方式
  42. int16 Max_ia;
  43. int16 Max_ib; // !!!!!!!该结构体如需添加新变量,需放在该结构体最后添加 !!!!!
  44. int16 Max_ic;
  45. uint8 FR_SET;
  46. uint8 FR;
  47. uint8 Flg_ATORampEnd; // !!!!!!!该结构体如需添加新变量,需放在该结构体最后添加 !!!!!
  48. int16 Ref; // 控制目标给定
  49. int16 IqRef; // Q轴给定电流
  50. int16 IdRef; // D轴给定电流
  51. int16 IqSpeedRef; // Q轴速度给定电流
  52. int16 IqADCCurrentRef; // Q轴母线电流给定电流 // !!!!!!!该结构体如需添加新变量,需放在该结构体最后添加 !!!!!
  53. int16 ExtDec;
  54. int16 LimitIqOut; // 限制功率输出
  55. uint16 PowerLimitValue; // 功率限制的值
  56. uint8 Mode0HoldCnt; // MODE0切MODE1延迟时间计数 // !!!!!!!该结构体如需添加新变量,需放在该结构体最后添加 !!!!!
  57. uint16 EMFsquare; // 当前FOC_ESQU滤波后的值
  58. uint16 RunStateCnt; // 运行状态计数
  59. uint8 LoopTime; // 外环控制周期计数 // !!!!!!!该结构体如需添加新变量,需放在该结构体最后添加 !!!!!
  60. uint16 State_Count; // 电机各个状态的时间计数
  61. int16 mcPosCheckAngle;// 位置检测的角度
  62. uint8 MCU_TEMP; //MCU超过70°后,读取当前温度值 // !!!!!!!该结构体如需添加新变量,需放在该结构体最后添加 !!!!!
  63. int16 Angle; //弱磁角度
  64. uint16 sqrtUdq;
  65. uint16 Refcnt;
  66. uint8 ZeroFlag; // // !!!!!!!该结构体如需添加新变量,需放在该结构体最后添加 !!!!!
  67. uint8 ZeroLossFlag; //
  68. uint16 ZeroCnt;
  69. uint16 ZeroLossCnt; // !!!!!!!该结构体如需添加新变量,需放在该结构体最后添加 !!!!!
  70. int16 NTCValue;
  71. int16 NTCValueFlt;
  72. // !!!!!!!该结构体如需添加新变量,需放在该结构体最后添加 !!!!!
  73. uint8 NTCValueGatherFlag;
  74. uint16 NTCValueGatherCnt;
  75. // int16 SPIVar1;
  76. // int16 SPIVar2;
  77. // int16 SPIVar3;
  78. //
  79. // uint8 Undervoltage_flag; // !!!!!!!该结构体如需添加新变量,需放在该结构体最后添加 !!!!!
  80. }FOCCTRL; // !!!!!!!该结构体如需添加新变量,需放在该结构体最后添加 !!!!!
  81. typedef struct
  82. {
  83. int16 RefValue;
  84. float OutValue_float;
  85. float IncValue;
  86. float DecValue;
  87. }MCRAMP;
  88. typedef struct
  89. {
  90. uint16 Compare; // 比较值
  91. uint16 Period; // 周期值
  92. uint16 TimerDR;
  93. uint16 TimerDROld;
  94. uint16 TimerARR; // 周期值
  95. uint16 TimerARROld; // 周期值
  96. uint16 Duty; // PWM占空比,Q15格式
  97. uint16 Freq; // PWM频率
  98. uint8 isUpdate; // PWM新的duty更新
  99. }PWMINPUTCAL;
  100. /* Exported variables ---------------------------------------------------------------------------*/
  101. extern bit isCtrlPowOn;
  102. extern debugONOFFTypeDef xdata debug_ONOFFTest;
  103. extern FOCCTRL xdata mcFocCtrl; // !!!!!!!该结构体如需添加新变量,需放在该结构体最后添加 !!!!!
  104. extern PWMINPUTCAL xdata mcPwmInput;
  105. extern MCRAMP data mcRefRamp;
  106. /* Exported functions ---------------------------------------------------------------------------*/
  107. extern void VariablesPreInit(void);
  108. extern void TargetRef_Process(void);
  109. extern void Speed_response(void);
  110. extern int16 Motor_Ramp(int16 ref);
  111. extern void VSPSample(void);
  112. extern void ONOFF_Starttest(void);
  113. extern void ATORamp(void);
  114. extern void TickCycle_1ms(void);
  115. extern void PWMInputCapture(void);
  116. extern void FGOutput(void);
  117. extern void Fault_GetCurrentOffset(void);
  118. extern uint32 Abs_F32(int32 value);
  119. extern void SinCal(int16 Ref, int16 Theta, int16 * Sin, int16 * Cos);
  120. extern uint16 SqrtUDQ(int16 sqrtUd, int16 sqrtUq);
  121. extern void LedDisplay(uint8 uLedMask);//uint8 LED1, uint8 LED2, uint8 LED3, uint8 LED4, uint8 LED5, uint8 LED6);
  122. extern void zeroLoss(void);
  123. /******* **********************/
  124. #endif