spwm.h

来自「在采样的基础上实现数码管显示和利用TI公司的FFT算法进行运算」· C头文件 代码 · 共 49 行

H
49
字号
#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 + =
减小字号Ctrl + -
显示快捷键?