| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- #include "FU68xx_5.h"
- #include <Myproject.h>
- 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_();
- }
|