| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253 |
- /**
- * @copyright None
- * @file Declaration.h
- * @author Comment Vivre
- * @date 2024-08-26
- * @brief None
- */
- #ifndef __DECLARATION_H_
- #define __DECLARATION_H_
- #include <VaribleDef.h>
- // 运行
- /**
- @brief 状态处理函数
- */
- void MC_Control(void);
- uint8 Drv_SectionCheak(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 MotorcontrolInit(void);
- void Motor_TailWind(void);
- void MotorcontrolInit(void);
- void McTailWindDealwith(void);
- void TailWindDealwith(void);
- void TargetRef_Process(void);
- void Speed_response(void);
- int16 Motor_Ramp(int16 ref);
- void VSPSample(void);
- void ONOFF_Starttest(void);
- void ATORamp(void);
- void TickCycle_1ms(void);
- void PWMInputCapture(void);
- void FGOutput(void);
- void Fault_GetCurrentOffset(void);
- uint32 Abs_F32(int32 value);
- void SinCal(int16 Ref, int16 Theta, int16 * Sin, int16 * Cos);
- uint16 SqrtUDQ(int16 sqrtUd, int16 sqrtUq);
- void LedDisplay(uint8 uLedMask);
- void zeroLoss(void);
- // 保护相关
- 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);
- 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);
- // 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;
- /******************************************************************************///Function Subject
- extern void SetPipe_DMA0(eType_DMA_PIPE ePipe);
- extern void SetPipe_DMA1(eType_DMA_PIPE ePipe);
- extern void SetDataPackage_DMA0(unsigned short ulAddr, char cLen);
- extern void SetDataPackage_DMA1(unsigned short ulAddr, char cLen);
- extern void EnableRun_DMA0(void);
- extern void EnableRun_DMA1(void);
- extern bool GetStatus_DMA0(eType_DMA_Statu eStatu);
- extern bool GetStatus_DMA1(eType_DMA_Statu eStatu);
- extern void SetEndian_DMA(eType_DMA_Endian eEndian);
- extern void SetIRQ_DMA(ebool eIRQ, eType_DMA_IRQ eIP);
- extern void SetDbgMod_DMA(void);
- extern void SetDbgData_DMA(unsigned short ulAddr);
- extern void Set_DBG_DMA(uint16 DMAAddr);
- void ZeroCrossing_Init(void);
- #define TIM3_Fre (750000.0) // TIM0计数频率750KHz
- #define TIM4_Fre (6000.0) // TIM0计数频率6KHz
- void Timer1_Init(void);
- void Timer2_Init(void);
- void Timer3_Init(void);
- void Timer4_Init(void);
- void TIM4_Init_RF(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);
- typedef struct
- {
- uint8 CheckCount; //
- uint8 TSD_Enable_Flag; // 温度检测使能标志位
- uint8 TSD_Trigger_Flag; // 温度检测触发标志位
- uint8 ActualTemper; //
- uint16 Trigger_Value; //
- uint16 TSD_Dec_Time; // 温度检测时间计数
-
- }MCUTemperature;
- extern MCUTemperature xdata TSDTemperature;
- typedef struct
- {
- uint8 ScrOnAngleTimeDatum; //期望给定 导通延迟时间 单位为 1/载波频率
- uint8 ScrOnAngleTime; //实际给定 导通延迟时间 单位为 1/载波频率
- uint8 ScrOnPeriod; //控制周期
- uint16 Temperature; //温度值
- uint16 TemperatureDatum[3]; //温度期望值
- uint16 TPCtrlDealy; // 发热丝导通延时计数
- uint8 ScrOnZeroFlag; //控制周期
- uint16 ScrOnZeroCnt;
- } USER_TYPEDEF;
- extern USER_TYPEDEF User;
- typedef struct
- {
- uint16 LEDCnt;
- uint8 FlagLED;
- // uint8 FlagStepTime;
- // uint16 LEDTimeCnt;
- } LEDCtl_TypeDef;
- extern LEDCtl_TypeDef LEDCtl;
- #define LED1_MASK ((uint8)(1 << 0))
- #define LED2_MASK ((uint8)(1 << 1))
- #define LED3_MASK ((uint8)(1 << 2))
- #define LED4_MASK ((uint8)(1 << 3))
- #define LED5_MASK ((uint8)(1 << 4))
- #define LED6_MASK ((uint8)(1 << 5))
- void LEDControl(void);
- void Temperature_Control(void);
- void LedDisplay(uint8 uLedMask);
- /**
- @brief 按键函数声明
- */
- #define SW3 GP33
- #define SW1 GP33
- #define SW2 GP26
- void KeyInit(void);
- int KeyValue(void);
- int KeyValue1(void);
- void KeyScan(void);
- #endif
|