intint.c 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. #include "FU68xx_5.h"
  2. #include <Myproject.h>
  3. void VREFConfigInit(void)
  4. {
  5. /************************VREF&VHALF Config************************/
  6. #if (HW_ADC_VREF == VREF3_0)
  7. {
  8. SetBit(VREF_VHALF_CR, VRVSEL1); //00-->4.5V 01-->VDD5
  9. ClrBit(VREF_VHALF_CR, VRVSEL0); //10-->3.0V 11-->4.0V
  10. }
  11. #elif (HW_ADC_VREF == VREF4_0)
  12. {
  13. SetBit(VREF_VHALF_CR, VRVSEL1); //00-->4.5V 01-->VDD5
  14. SetBit(VREF_VHALF_CR, VRVSEL0); //10-->3.0V 11-->4.0V
  15. }
  16. #elif (HW_ADC_VREF == VREF4_5)
  17. {
  18. ClrBit(VREF_VHALF_CR, VRVSEL1); //00-->4.5V 01-->VDD5
  19. ClrBit(VREF_VHALF_CR, VRVSEL0); //10-->3.0V 11-->4.0V
  20. }
  21. #elif (HW_ADC_VREF == VREF5_0)
  22. {
  23. ClrBit(VREF_VHALF_CR, VRVSEL1); //00-->4.5V 01-->VDD5
  24. SetBit(VREF_VHALF_CR, VRVSEL0); //10-->3.0V 11-->4.0V
  25. }
  26. #endif
  27. #if (VREF_OUT_EN)
  28. SetBit(P3_AN, PIN5); //VREF Voltage -->P35 Output ?????P35??,???????
  29. SetBit(P3_OE, PIN5); //VREF Voltage -->P35 Output ?????P35??
  30. #endif
  31. #if (VHALF_OUT_EN)
  32. SetBit(P3_AN, P32);
  33. #endif
  34. SetBit(VREF_VHALF_CR, VREFEN | VHALFEN); //VREF_VHALF_CR = 0x11;
  35. /* ---------------------------------------------------------------------- */
  36. }
  37. /* -------------------------------------------------------------------------------------------------
  38. Function Name : void HardwareInit(void)
  39. Description : 硬件初始化,初始化需要使用的硬件设备配置,FOC必须配置的是运放电压、运放初始化、ADC初始化、Driver初始化
  40. ,其他的可根据实际需求加。
  41. Input : 无
  42. Output : 无
  43. -------------------------------------------------------------------------------------------------*/
  44. void HardwareInit(void)
  45. {
  46. /************************VREF&VHALF Config************************/
  47. VREFConfigInit();//参考电压初始化
  48. /*********硬件FO过流,比较器初始化,用于硬件过流比较保护*********/
  49. #if (HardwareCurrent_Protect == Hardware_FO_Protect) //外部中断初始化,用于外部中断硬件过流FO的保护
  50. INT0_Init();
  51. #elif (HardwareCurrent_Protect == Hardware_CMP_Protect) //选择比较过流,比较器初始化
  52. CMP3_Init();
  53. #elif (HardwareCurrent_Protect == Hardware_FO_CMP_Protect)//两者都选择
  54. INT0_Init();
  55. CMP3_Init();
  56. #endif
  57. // 为提高芯片的抗干扰能力,降低芯片功耗,将不需要用的GPIO默认都配置为输入上拉。
  58. // GPIO_Default_Init();
  59. /************************硬件外设初始化**************************/
  60. UART1_Init(); //调试工具初始化
  61. #if (Uart_Select==Uart_MoNi)
  62. MONI_UART1_Init(); //模拟串口初始化
  63. #elif (Uart_Select==Uart_Yingjian)
  64. UART2_Init();
  65. #endif
  66. GPIO_Init(); //GPIO初始化
  67. ADC_Init(); //ADC初始化
  68. AMP_Init(); //运放初始化
  69. #if (PFCEnable == 1)//PFC比较器初始化
  70. SetBit(P1_AN, P13 | P14 | P15);
  71. ClrBit(P1_OE, P13);
  72. SetBit(AMP_CR0, AMP3EN);
  73. #endif
  74. Driver_Init(); //pwm初始化
  75. CMP3_Interrupt_Init(); // 比较器中断配置 建议和比较器初始化间隔一段时间
  76. Timer3_Init(); //PWM OUTput 风机控制
  77. Timer4_Init(); //FG 捕获
  78. /***********SYSTICK定时器配置*******************/
  79. SYST_ARR = 24000;
  80. SetBit(IP2, PSYSTICK0);
  81. // SetBit(IP2 , PSYSTICK1);
  82. SetBit(DRV_SR, SYSTIE);
  83. _nop_(); _nop_();
  84. #if (PFCEnable==1)//PFC初始化
  85. PFC_init();
  86. #endif
  87. PI2_Init();
  88. }
  89. /* ---------------------------------------------------------------------------------
  90. Function Name : void SoftwareInit(void)
  91. Description : 软件初始化,初始化所有定义变量,按键初始化扫描
  92. Input : 无
  93. Output : 无
  94. ----------------------------------------------------------------------------------*/
  95. void SoftwareInit(void)
  96. {
  97. /****初始化所有定义的参数变量****/
  98. MotorcontrolInit();
  99. /****电机初始状态为mcReady,故障保护为无故障******/
  100. mcState = mcReady;
  101. PFCState = PFCReady;
  102. mcFaultSource = 0;
  103. PFCFaultSource = 0;
  104. Uart.u1IduRevDataCnt = 0;
  105. Uartwatch.cunflag = 1;
  106. _nop_(); _nop_();
  107. }