/** * @copyright None * @file Declaration.h * @author Comment Vivre * @date 2024-08-26 * @brief None */ #ifndef __DECLARATION_H_ #define __DECLARATION_H_ #include /** @brief 状态处理函数 */ void FiniteStateManger(void); /** @brief 定时任务 */ void TickCycle(void); /** @brief 目标参数爬坡函数 */ int16 LoopRamp(int16 Xn0); /** @brief 环路响应 */ void LoopResponse(void); /** @brief 获取环路目标参数 */ void GetTargetRef(void); void VariablesPreInit(void); void GetCurrentOffset(void); void Motor_Ready (void); void Motor_Init (void); void FOC_Init(void); void Motor_Charge(void); void MC_Stop(void); void MC_Break(void); void Motor_Static_Open(void); void Motor_FocTailWind_Open(void); void Motor_Align(void); void Motor_TailWind(void); void McTailWindDealwith(void); void TailWindDealwith(void); void VSPSample(void); void ONOFF_Starttest(void); void ATORamp(void); void PWMInputCapture(void); void FGOutput(void); void Fault_GetCurrentOffset(void); uint32 Abs_F32(int32 value); // 保护相关 void Fault_Detection(void); void Fault_OverCurrent(void); void Fault_Temperature(void); void Fault_Voltage(void); void Fault_Stall(void); void Fault_PhaseLoss(void); void UnderProcess(void); void Fault_Power(void); // 硬件初始化声明 void AMP_Init(void); void ADC_Init(void); void CMP0_Init(void); void CMP3_Init(void); void CMP3_Interrupt_Init(void); unsigned short CRC_Check(unsigned char start_sector, unsigned char offset_sector); void Driver_Init(void); void GPIO_Init(void); void GPIO_Default_Init(void); void SPI_Init(void); /** @brief 芯片温度检测 */ void TSD_Init(void); void TEMP_Check(void); void PI_Init(void); void PI2_Init(void); void PI3_Init(void); void UART1_Init(void); void UART2_Init(void); void put_char(unsigned char c); void put_string(unsigned char * str); /** @brief DMA相关 */ typedef enum { UART_DRAM = 0, DRAM_UART = DMACFG0, I2C_DRAM = DMACFG1, DRAM_I2C = DMACFG1 | DMACFG0, SPI_DRAM = DMACFG2, DRAM_SPI = DMACFG2 | DMACFG0, UART2_DRAM = DMACFG2 | DMACFG1, DRAM_UART2 = DMACFG2 | DMACFG1 | DMACFG0 } eType_DMA_PIPE; typedef enum { DMA_IRQ_L1 = 0, DMA_IRQ_L2 = 0x40, DMA_IRQ_L3 = 0x80, DMA_IRQ_L4 = 0xc0 } eType_DMA_IRQ; typedef enum { BIG_ENDIAN = 0, LITTLE_ENDIAN = ENDIAN } eType_DMA_Endian; typedef enum { DMA_BSY = DMABSY, DMA_IRQ = DMAIF } eType_DMA_Statu; void SetPipe_DMA0(eType_DMA_PIPE ePipe); void SetPipe_DMA1(eType_DMA_PIPE ePipe); void SetDataPackage_DMA0(unsigned short ulAddr, char cLen); void SetDataPackage_DMA1(unsigned short ulAddr, char cLen); void EnableRun_DMA0(void); void EnableRun_DMA1(void); bool GetStatus_DMA0(eType_DMA_Statu eStatu); bool GetStatus_DMA1(eType_DMA_Statu eStatu); void SetEndian_DMA(eType_DMA_Endian eEndian); void SetIRQ_DMA(ebool eIRQ, eType_DMA_IRQ eIP); void SetDbgMod_DMA(void); void SetDbgData_DMA(unsigned short ulAddr); void Set_DBG_DMA(uint16 DMAAddr); /** @brief 定时器 */ #define TIM3_Fre (750000.0) // TIM0计数频率750KHz #define TIM4_Fre (6000.0) // TIM0计数频率6KHz void Timer2_Init(void); void Timer3_Init(void); /* ------------------------------------------- 功能 ------------------------------------------------------------- */ /** @brief RSD顺逆风 */ void RsdProcess(void); void RSDTailWindStart(void); void RSDDetectInit(void); MotStateType RSDStartProcess(void); /** @brief FOC顺逆风 */ void FocDetectInit(void); void FOCCloseLoopStart(void); void FOC_TailWindDealwith(void); /** @brief 弱磁 */ void FiledWeakenInit(void); void FileWeakenControl(void); /** @brief BMEF顺逆风 */ void BEMFDetectInit(void); void BemfProcess(void); void BEMFFOCCloseLoopStart(void); MotStateType Bemf_Start_Process(void); /** @brief 电压补偿 */ void VoltageCompensation(uint8 VCCtrlMode, uint16 VCmcDcbusFlt); void BusAverageVoltage(void); #endif