//***************************************************/
//文件名:SVPWM.c
//功能:调用28335内部PWM模块生成SVPWM输出测试文件
//说明:输入信息采用结构体,使用时改变结构体指针即可改变输入信号。
// InitSvpwm()函数提供PWM模块初始化以及相应PIE中断的配置。
// 通过park逆变换得到静止平面坐标系下的电压信号。
// 在PWM定时器下溢中断中更新比较器的值,即每个PWM周期更新一次
//****************************************************/
#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File
#include "DSP2833x_Examples.h" // DSP2833x Examples Include File
#include "math.h"
#include "float.h"
extern Uint16 RamfuncsRunStart;
extern Uint16 RamfuncsLoadStart;
extern Uint16 RamfuncsLoadEnd;
typedef struct
{
float ds; // 静止平面坐标系下电压信号
float qs;
float ang; // 电气角度 电气角度=机械角度*极对数
float de; // 旋转坐标系下电压信号
float qe;
}IPARK;
IPARK ipark1={0,0,0,0.3,0.4};
// IPARK *v=&ipark1; //改变此处结构体指针改变输入
void InitSvpwm(void);
void InitEPwm1(void);
void InitEPwm2(void);
void InitEPwm3(void);
interrupt void epwm1_isr(void);
void ipark(IPARK *v);
void svgen(IPARK *v);
#define PRD 7500 // PWM周期寄存器
#define PI 3.1415926
float tmr1,tmr2,tmr3;
void main(void)
{
InitSysCtrl();
DINT;
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart); //Flash operation