📄 spwm.h
字号:
#ifndef _SPWM_H
#define _SPWM_H
#define ControlHamanic 3 // 控制的谐波次数
#define ThirdAngleAdd 1536 //三次谐波递增量
#define FifthAngleAdd 2560 //五次
#define SevenAngleAdd 3584 //7次
#define PWMNum 128
#define MaxPulsNum 384
#define OpenControl 0
#define CloseControl 1
#define MaxHamanicVout 300
#define MinHamanicVout 1
#define InvMaxHam 22370 //32768/3000/16*32768
#define InvMaxAngle 18641 //360度
#define MaxSetV 3000
#define MaxP 100
#define MaxI 100
#define MaxD 100
typedef struct
{
//void (*calcpulse)(void *); //脉宽计算
unsigned int Angle[ControlHamanic]; //相位0--360
int Ample[ControlHamanic]; //幅值,Q15,调制度系数
int Kp; //比例系数
int Ki; //积分系数
int Kd; //微分系数
int PulseA; //A相脉宽
int PulseB; //B
int PulseC; //C
int MaudleK; //最大调制比系数0.95,31129,Q15
int VoutToMaudleK; //电压与调制度的转换关系,Q15
int T; //Tc/2; 载波周期
int ControlMode;
}SPWM;
typedef SPWM* SPWM_Handle;
extern SPWM spwm_moudle;
extern int *pPWMData;
extern int PWM_Pulse[MaxPulsNum] ; //存放脉宽数据
extern int PWM_Buf[MaxPulsNum]; //数据缓冲区
extern int OpenAngle[ControlHamanic];
extern int OpenAmple[ControlHamanic];
void spwm_init(SPWM_Handle p);
void spwm_calc(SPWM_Handle p);
void calc_save_pwm();
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -