Declaration.h 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. /**
  2. * @copyright None
  3. * @file Declaration.h
  4. * @author Comment Vivre
  5. * @date 2024-08-26
  6. * @brief None
  7. */
  8. #ifndef __DECLARATION_H_
  9. #define __DECLARATION_H_
  10. #include <VaribleDef.h>
  11. /**
  12. @brief 状态处理函数
  13. */
  14. void FiniteStateManger(void);
  15. /**
  16. @brief 定时任务
  17. */
  18. void TickCycle(void);
  19. /**
  20. @brief 目标参数爬坡函数
  21. */
  22. int16 LoopRamp(int16 Xn0);
  23. /**
  24. @brief 环路响应
  25. */
  26. void LoopResponse(void);
  27. /**
  28. @brief 获取环路目标参数
  29. */
  30. void GetTargetRef(void);
  31. void VariablesPreInit(void);
  32. void GetCurrentOffset(void);
  33. void Motor_Ready (void);
  34. void Motor_Init (void);
  35. void FOC_Init(void);
  36. void Motor_Charge(void);
  37. void MC_Stop(void);
  38. void MC_Break(void);
  39. void Motor_Static_Open(void);
  40. void Motor_FocTailWind_Open(void);
  41. void Motor_Align(void);
  42. void Motor_TailWind(void);
  43. void McTailWindDealwith(void);
  44. void TailWindDealwith(void);
  45. void VSPSample(void);
  46. void ONOFF_Starttest(void);
  47. void ATORamp(void);
  48. void PWMInputCapture(void);
  49. void FGOutput(void);
  50. void Fault_GetCurrentOffset(void);
  51. uint32 Abs_F32(int32 value);
  52. // 保护相关
  53. void Fault_Detection(void);
  54. void Fault_OverCurrent(void);
  55. void Fault_Temperature(void);
  56. void Fault_Voltage(void);
  57. void Fault_Stall(void);
  58. void Fault_PhaseLoss(void);
  59. void UnderProcess(void);
  60. void Fault_Power(void);
  61. // 硬件初始化声明
  62. void AMP_Init(void);
  63. void ADC_Init(void);
  64. void CMP0_Init(void);
  65. void CMP3_Init(void);
  66. void CMP3_Interrupt_Init(void);
  67. unsigned short CRC_Check(unsigned char start_sector, unsigned char offset_sector);
  68. void Driver_Init(void);
  69. void GPIO_Init(void);
  70. void GPIO_Default_Init(void);
  71. void SPI_Init(void);
  72. /**
  73. @brief 芯片温度检测
  74. */
  75. void TSD_Init(void);
  76. void TEMP_Check(void);
  77. void PI_Init(void);
  78. void PI2_Init(void);
  79. void PI3_Init(void);
  80. void UART1_Init(void);
  81. void UART2_Init(void);
  82. void put_char(unsigned char c);
  83. void put_string(unsigned char * str);
  84. /**
  85. @brief DMA相关
  86. */
  87. typedef enum
  88. {
  89. UART_DRAM = 0,
  90. DRAM_UART = DMACFG0,
  91. I2C_DRAM = DMACFG1,
  92. DRAM_I2C = DMACFG1 | DMACFG0,
  93. SPI_DRAM = DMACFG2,
  94. DRAM_SPI = DMACFG2 | DMACFG0,
  95. UART2_DRAM = DMACFG2 | DMACFG1,
  96. DRAM_UART2 = DMACFG2 | DMACFG1 | DMACFG0
  97. } eType_DMA_PIPE;
  98. typedef enum
  99. {
  100. DMA_IRQ_L1 = 0,
  101. DMA_IRQ_L2 = 0x40,
  102. DMA_IRQ_L3 = 0x80,
  103. DMA_IRQ_L4 = 0xc0
  104. } eType_DMA_IRQ;
  105. typedef enum
  106. {
  107. BIG_ENDIAN = 0,
  108. LITTLE_ENDIAN = ENDIAN
  109. } eType_DMA_Endian;
  110. typedef enum
  111. {
  112. DMA_BSY = DMABSY,
  113. DMA_IRQ = DMAIF
  114. } eType_DMA_Statu;
  115. void SetPipe_DMA0(eType_DMA_PIPE ePipe);
  116. void SetPipe_DMA1(eType_DMA_PIPE ePipe);
  117. void SetDataPackage_DMA0(unsigned short ulAddr, char cLen);
  118. void SetDataPackage_DMA1(unsigned short ulAddr, char cLen);
  119. void EnableRun_DMA0(void);
  120. void EnableRun_DMA1(void);
  121. bool GetStatus_DMA0(eType_DMA_Statu eStatu);
  122. bool GetStatus_DMA1(eType_DMA_Statu eStatu);
  123. void SetEndian_DMA(eType_DMA_Endian eEndian);
  124. void SetIRQ_DMA(ebool eIRQ, eType_DMA_IRQ eIP);
  125. void SetDbgMod_DMA(void);
  126. void SetDbgData_DMA(unsigned short ulAddr);
  127. void Set_DBG_DMA(uint16 DMAAddr);
  128. /**
  129. @brief 定时器
  130. */
  131. #define TIM3_Fre (750000.0) // TIM0计数频率750KHz
  132. #define TIM4_Fre (12000000.0) // TIM0计数频率6KHz
  133. void Timer2_Init(void);
  134. void Timer3_Init(void);
  135. void TIM4_Init(void);
  136. /* ------------------------------------------- 功能 ------------------------------------------------------------- */
  137. /**
  138. @brief RSD顺逆风
  139. */
  140. void RsdProcess(void);
  141. void RSDTailWindStart(void);
  142. void RSDDetectInit(void);
  143. MotStateType RSDStartProcess(void);
  144. /**
  145. @brief FOC顺逆风
  146. */
  147. void FocDetectInit(void);
  148. void FOCCloseLoopStart(void);
  149. void FOC_TailWindDealwith(void);
  150. /**
  151. @brief 弱磁
  152. */
  153. void FiledWeakenInit(void);
  154. void FileWeakenControl(void);
  155. /**
  156. @brief BMEF顺逆风
  157. */
  158. void BEMFDetectInit(void);
  159. void BemfProcess(void);
  160. void BEMFFOCCloseLoopStart(void);
  161. MotStateType Bemf_Start_Process(void);
  162. /**
  163. @brief 电压补偿
  164. */
  165. void VoltageCompensation(uint8 VCCtrlMode, uint16 VCmcDcbusFlt);
  166. void BusAverageVoltage(void);
  167. #endif