#include "FU68xx_5.h" #include void VREFConfigInit(void) { /************************VREF&VHALF Config************************/ #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); //VREF Voltage -->P35 Output ?????P35??,??????? SetBit(P3_OE, PIN5); //VREF Voltage -->P35 Output ?????P35?? #endif #if (VHALF_OUT_EN) SetBit(P3_AN, P32); #endif SetBit(VREF_VHALF_CR, VREFEN | VHALFEN); //VREF_VHALF_CR = 0x11; /* ---------------------------------------------------------------------- */ } /* ------------------------------------------------------------------------------------------------- Function Name : void HardwareInit(void) Description : 硬件初始化,初始化需要使用的硬件设备配置,FOC必须配置的是运放电压、运放初始化、ADC初始化、Driver初始化 ,其他的可根据实际需求加。 Input : 无 Output : 无 -------------------------------------------------------------------------------------------------*/ void HardwareInit(void) { /************************VREF&VHALF Config************************/ VREFConfigInit();//参考电压初始化 /*********硬件FO过流,比较器初始化,用于硬件过流比较保护*********/ #if (HardwareCurrent_Protect == Hardware_FO_Protect) //外部中断初始化,用于外部中断硬件过流FO的保护 INT0_Init(); #elif (HardwareCurrent_Protect == Hardware_CMP_Protect) //选择比较过流,比较器初始化 CMP3_Init(); #elif (HardwareCurrent_Protect == Hardware_FO_CMP_Protect)//两者都选择 INT0_Init(); CMP3_Init(); #endif // 为提高芯片的抗干扰能力,降低芯片功耗,将不需要用的GPIO默认都配置为输入上拉。 // GPIO_Default_Init(); /************************硬件外设初始化**************************/ UART1_Init(); //调试工具初始化 #if (Uart_Select==Uart_MoNi) MONI_UART1_Init(); //模拟串口初始化 #elif (Uart_Select==Uart_Yingjian) UART2_Init(); #endif GPIO_Init(); //GPIO初始化 ADC_Init(); //ADC初始化 AMP_Init(); //运放初始化 #if (PFCEnable == 1)//PFC比较器初始化 SetBit(P1_AN, P13 | P14 | P15); ClrBit(P1_OE, P13); SetBit(AMP_CR0, AMP3EN); #endif Driver_Init(); //pwm初始化 CMP3_Interrupt_Init(); // 比较器中断配置 建议和比较器初始化间隔一段时间 Timer3_Init(); //PWM OUTput 风机控制 Timer4_Init(); //FG 捕获 /***********SYSTICK定时器配置*******************/ SYST_ARR = 24000; SetBit(IP2, PSYSTICK0); // SetBit(IP2 , PSYSTICK1); 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) { /****初始化所有定义的参数变量****/ MotorcontrolInit(); /****电机初始状态为mcReady,故障保护为无故障******/ mcState = mcReady; PFCState = PFCReady; mcFaultSource = 0; PFCFaultSource = 0; Uart.u1IduRevDataCnt = 0; Uartwatch.cunflag = 1; _nop_(); _nop_(); }