Files
ch32v20x-examples/EVT/EXAM/APPLICATION/Electric_Hair_Dryer/User/main.c
T
2026-08-10 10:47:09 +08:00

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
}
}