| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- #include "FU68xx_5.h"
- #include <Myproject.h>
- void VREFConfigInit(void)
- {
- #if (HW_ADC_VREF == VREF3_0)
- {
- SetBit(VREF_VHALF_CR, VRVSEL1); //00-->4.5V 01-->VDD5
- ClrBit(VREF_VHALF_CR, VRVSEL0); //10-->3.0V 11-->4.0V
- }
- #elif (HW_ADC_VREF == VREF4_0)
- {
- SetBit(VREF_VHALF_CR, VRVSEL1); //00-->4.5V 01-->VDD5
- SetBit(VREF_VHALF_CR, VRVSEL0); //10-->3.0V 11-->4.0V
- }
- #elif (HW_ADC_VREF == VREF4_5)
- {
- ClrBit(VREF_VHALF_CR, VRVSEL1); //00-->4.5V 01-->VDD5
- ClrBit(VREF_VHALF_CR, VRVSEL0); //10-->3.0V 11-->4.0V
- }
- #elif (HW_ADC_VREF == VREF5_0)
- {
- ClrBit(VREF_VHALF_CR, VRVSEL1); //00-->4.5V 01-->VDD5
- SetBit(VREF_VHALF_CR, VRVSEL0); //10-->3.0V 11-->4.0V
- }
- #endif
- #if (VREF_OUT_EN)
- SetBit(P3_AN, PIN5);
- SetBit(P3_OE, PIN5);
- #endif
- #if (VHALF_OUT_EN)
- SetBit(P3_AN, P32);
- #endif
- SetBit(VREF_VHALF_CR, VREFEN | VHALFEN);
- }
- void HardwareInit(void)
- {
- // 上电等待
- uint16 PowerUpCnt = 0;
-
- for (PowerUpCnt = 0; PowerUpCnt < 10000; PowerUpCnt++) {};
-
- // 参考电压初始化
- VREFConfigInit();
-
- // 外部中断初始化 预驱故障中断保护
- PreDriverFalutInt();
-
- GPIO_Init();
-
- ADC_Init();
-
- AMP_Init();
-
- Driver_Init();
-
- CMP3_Interrupt_Init();
-
- SYST_ARR = 24000;
-
- SetBit(IP2, PSYSTICK0);
-
- SetBit(DRV_SR, SYSTIE);
-
- _nop_(); _nop_();
-
- #if (PFCEnable==1)//PFC初始化
- PFC_init();
-
- #endif
- PI2_Init();
- }
- /* ---------------------------------------------------------------------------------
- Function Name : void SoftwareInit(void)
- Description : 软件初始化,初始化所有定义变量,按键初始化扫描
- Input : 无
- Output : 无
- ----------------------------------------------------------------------------------*/
- void SoftwareInit(void)
- {
- memset(&mcFaultDect, 0, sizeof(FaultVarible)); // FaultVarible变量清零
- /************保护次数*************/
- memset(&mcProtectTime, 0, sizeof(ProtectVarible)); // ProtectVarible保护次数清零
- /***********过流保护**************/
- memset(&mcCurVarible, 0, sizeof(CurrentVarible)); // 电流保护的变量清零
- memset(&Time, 0, sizeof(TIMERTypeDef));
- memset(&PFCFaultDect, 0, sizeof(PFCFaultVarible));
- memset(&ConTrolCmd, 0, sizeof(CONTROLCMDD));
- /*****电机状态机时序变量***********/
- McStaSet.SetMode = 0;
- /*************外部控制环************/
- memset(&mcFocCtrl, 0, sizeof(FOCCTRL)); // mcFocCtrl变量清零
- mcFocCtrl.mcDcbus_chazhi = 32760;
- /******ADC采样滤波值*********/
- memset(&AdcSampleValue, 0, sizeof(ADCSample)); // ADCSample变量清零
- /**************************电流偏置校准变量**********************/
- memset(&mcCurOffset, 0, sizeof(CurrentOffset)); // mcCurOffset变量清零
- mcCurOffset.IuOffsetSum = 16383;
- mcCurOffset.IvOffsetSum = 16383;
- mcCurOffset.Iw_busOffsetSum = 16383;
- /*****速度环的响应***/
- memset(&mcSpeedRamp, 0, sizeof(MCRAMP)); // mcSpeedRamp变量清零
- mcSpeedRamp.IncValue = Motor_Speed_Inc;
- mcSpeedRamp.DecValue = Motor_Speed_Dec;
- mcState = mcReady;
- mcFaultSource = 0;
- }
|