f28335的c语言结构体,TMS320F28335程序SVPWM源程序

这是一个关于如何在TMS320F28335微控制器上利用C语言实现SVPWM(空间向量脉宽调制)的程序。代码包括了结构体定义、初始化函数、中断服务函数以及SVPWM生成函数,通过PWM模块的中断更新比较器值,动态调整输出。结构体用于传递输入参数,例如电气角度和电压信号。
摘要由CSDN通过智能技术生成

//***************************************************/

//文件名: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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值