66 lines
3.4 KiB
C
66 lines
3.4 KiB
C
/********************************** (C) COPYRIGHT *******************************
|
|
* File Name : main.c
|
|
* Author : WCH
|
|
* Version : V1.0.0
|
|
* Date : 2026/04/23
|
|
* Description : Main program body.
|
|
*********************************************************************************
|
|
* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
|
|
* Attention: This software (modified or not) and binary are used for
|
|
* microcontroller manufactured by Nanjing Qinheng Microelectronics.
|
|
*******************************************************************************/
|
|
|
|
#include "M0_Control_Library.h"
|
|
#include "ch32v20x_conf.h"
|
|
#include "IQmath_RV32.h"
|
|
#include "debug.h"
|
|
|
|
/*********************************************************************
|
|
* @fn main
|
|
*
|
|
* @brief Main program.
|
|
*
|
|
* @return none
|
|
*/
|
|
int main(void)
|
|
{
|
|
Delay_Init();
|
|
Delay_Ms(100);
|
|
Flash_Operation_Init(&Flash_M); //Post 4K FLASH Erase and Read
|
|
KeyandLED_IOInit(); //Button and indicator light IO configuration
|
|
KeyandLED_Parameter_Define(&Key_M, &LED_M); //Button and indicator parameters definition
|
|
Global_Status_Initial(); //Initialization of global state
|
|
Triac_Parameter_Define(&Triac_ctl,&Tempctl_M); //SCR State Initialization
|
|
Operation_Parameter_Define(&Operation_M); //Operation Parameter Definition
|
|
Motor_Prameter_Define(&MBase_M); //Motor Parameter Definition
|
|
Motor_FilerPara_Cal_M(&MStruc_M); //Motor Phase Filter Parameter Initialization
|
|
Motor_BaseCal_M(&MBase_M); //Base Value Parameter Calculation
|
|
PID_Prameter_Define(&Mpid_M); //PID Parameter Definition
|
|
DCurrProcess_Parameter_Define(&DCurrProcess_M);
|
|
PID_ParaBase_Cal_M(&MBase_M,&Mpid_M); //PID Base Value Parameter Calculation
|
|
Injstart_Parameter_Define_M(&InjStart_M); //Current Injection Start-up Parameter Configuration
|
|
Protection_and_Emergency_Parameter_Define(); //Protection Parameter Configuration
|
|
Speedrampctr_Parameter_Define(&SpeedRamp_M); //Rotational Speed Operation Parameter Configuration
|
|
SVPWM_1R_Paramter_Init(&SVPWM_Cal_M,&PWMCali_M ,&MBase_M); //SVPWM Calculation Parameter Configuration
|
|
SVPWM_1R_Timer_Configure(); //SVPWM uses timer and GPIO configuration
|
|
ADC_Parameter_Init(&ADC_M,&MBase_M); //ADC Calculation Parameter Configuration
|
|
ADC_OPA_Configure(&ADC_M); //ADC and OPA configuration
|
|
TempInit_Measure(&Tempctl_M,ADC1); //Initial temperature measurement
|
|
LBG_Parameter_Define(&MLBG_M,&LBG_Status_M); //LBG Observer Parameter Definition
|
|
LBG_Paramter_Cal (&MBase_M,&MLBG_M); //LBG Observer Parameter Calculation
|
|
HFVQI_Parameter_Define(&HFVQI_StartStruc_M,&SVPWM_Cal_M,&PWMCali_M); //Pulse Positioning Parameter Configuration
|
|
Poweroperation_Initial(&Powerctr_M); //Power On/Off Control Parameter Configuration
|
|
Powercom_Prameter_Define(&Powercom_M);
|
|
Systick_Init(); //Speed Loop Configuration
|
|
Interrupt_Configuration(); //Configure Interrupt
|
|
TIM_Cmd(TIM1, ENABLE);
|
|
TIM_Cmd(TIM2, ENABLE);
|
|
TIM_Cmd(TIM3, ENABLE);
|
|
TIM_Cmd(TIM4, ENABLE);
|
|
SYS_TIM_Cmd(ENABLE);
|
|
while(1)
|
|
{
|
|
Motor_Operation_Process(); //Motor Operation
|
|
}
|
|
}
|