基于DSP28335的SVPWM,下载在MCU中即可生成SVPWM算法可靠,具有很好的参考价值,需要的请自行下载
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-04-14 17:16 SVPWM
文件 563 2016-09-01 19:15 SVPWM.ccsproject
文件 22356 2017-06-09 22:02 SVPWM.cproject
目录 0 2019-04-14 17:16 SVPWM.launches
文件 10340 2018-12-11 18:13 SVPWM.launchesSVPWM.launch
文件 835 2016-08-24 17:05 SVPWM.project
目录 0 2019-04-14 17:16 SVPWM.settings
文件 62 2016-08-24 16:05 SVPWM.settingsorg.eclipse.cdt.codan.core.prefs
文件 220 2016-08-24 16:17 SVPWM.settingsorg.eclipse.cdt.core.prefs
文件 123 2016-08-24 16:05 SVPWM.settingsorg.eclipse.cdt.debug.core.prefs
文件 293 2016-08-24 16:16 SVPWM.settingsorg.eclipse.core.resources.prefs
文件 7270 2017-01-02 09:01 SVPWM28335_RAM_lnk.cmd
目录 0 2019-04-14 17:16 SVPWMDebug
文件 505 2018-12-11 18:12 SVPWMDebugccsObjs.opt
文件 35118 2018-12-11 18:12 SVPWMDebugmain.obj
文件 3895 2018-12-11 18:12 SVPWMDebugmain.pp
文件 5181 2018-12-11 18:12 SVPWMDebugmakefile
文件 250 2018-12-11 18:12 SVPWMDebugobjects.mk
文件 2026 2018-12-11 18:12 SVPWMDebugsources.mk
目录 0 2019-04-14 17:16 SVPWMDebugsrc
文件 13485 2016-08-24 17:06 SVPWMDebugsrcDSP2833x_Adc.obj
文件 2810 2016-08-24 17:06 SVPWMDebugsrcDSP2833x_Adc.pp
文件 1534 2018-12-11 18:12 SVPWMDebugsrcDSP2833x_ADC_cal.obj
文件 1842 2018-12-11 18:12 SVPWMDebugsrcDSP2833x_CodeStartBranch.obj
文件 6334 2018-12-11 18:12 SVPWMDebugsrcDSP2833x_CpuTimers.obj
文件 3977 2018-12-11 18:12 SVPWMDebugsrcDSP2833x_CpuTimers.pp
文件 858 2018-12-11 18:12 SVPWMDebugsrcDSP2833x_CSMPasswords.obj
文件 1624 2016-08-24 17:06 SVPWMDebugsrcDSP2833x_DBGIER.obj
文件 32929 2018-12-11 18:12 SVPWMDebugsrcDSP2833x_DefaultIsr.obj
文件 4005 2018-12-11 18:12 SVPWMDebugsrcDSP2833x_DefaultIsr.pp
文件 1699 2016-08-24 17:06 SVPWMDebugsrcDSP2833x_DisInt.obj
............此处省略96个文件信息
#include “DSP2833x_Device.h“ // DSP2833x Headerfile Include File
#include “DSP2833x_Examples.h“ // DSP2833x Examples Include File
#include “math.h“
#include “float.h“
/*经典SVPWM算法程序*/
void InitEPwm1(void);
void InitEPwm2(void);
void InitEPwm3(void);
#pragma CODE_SECTION(epwm1_isr “ramfuncs“);// 将中断服务函数转移到RAM
interrupt void epwm1_isr(void);
#define PRD 7500 // PWM周期寄存器
#define PI 3.1415926
#define N 200
#define delta 2*PI/N
float VaVbVct1t2TaTbTcXYZUalfaUbeta;
Uint16 DADBDCDD;
float M=0.9;
float Data[200] = {0};
Uint16 sectorCAL=0;
int i=66;
void main(void)
{
InitSysCtrl();
DINT;
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();
EALLOW;
PieVectTable.EPWM1_INT = &epwm1_isr;
EDIS;
EALLOW;
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0;
EDIS;
InitEPwm1Gpio();
InitEPwm2Gpio();
InitEPwm3Gpio();
InitEPwm1();
InitEPwm2();
InitEPwm3();
EALLOW;
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;
EDIS;
memcpy(&RamfuncsRunStart &RamfuncsLoadStart (Uint32)&RamfuncsLoadSize);
InitFlash();
IER |= M_INT3; //EPWM1的中断
PieCtrlRegs.PIEIER3.bit.INTx1 = 1;
EINT; //开中断
ERTM; //使能调试事件
for(;;)
{
/*****调试使用******/
DA = EPwm1Regs.CMPA.half.CMPA/2;
DB = EPwm3Regs.CMPA.half.CMPA/2;
DC = EPwm2Regs.CMPA.half.CMPA/2;
DD = Ubeta*300+1000;
}
}
void InitEPwm1()
{
// 配置时钟
EPwm1Regs.TBPRD = PRD; // 设置周期
EPwm1Regs.TBPHS.half.TBPHS=0x0000; //phase is 0
EPwm1Regs.TBCTR = 0x0000; // Clear conuter
// Setup TBCLK
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; //增减计数模式
EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE; // Disable phase loading
EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; // Clock ratio to SYSCLKOUT /1
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1; //TBCLK=SYSCLKOUT/(HSPCLKDIV*CLKDIV)=150MHz
EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW; //The period register (TBPRD) is loaded from its shadow register
EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO; // Sync down-stream module,同步输出选择设定
// Setup shadowing
EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO; // Load on Zero
EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;
// Set actions
EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR ;
EPwm1Regs.AQCTLA.bit.CAD = AQ_SET ; // Set PWM1A on event A up count
// 配置死区
EPwm1Regs.DBCTL.bit.IN_MODE = DBA_ALL; // enable Dead-band module
EPwm1Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC; // Active low complementary (ALC) mode. EPWMxA is inverted.
EPwm1Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE; //低电平有效,互补输出。
EPwm1Regs.DBFED = 300; // FED = 300 TBCLKs
EPwm1Regs.DBRED = 300; // RED = 300 TBCLKs
// 配置中断
EPwm1R
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-04-14 17:16 SVPWM
文件 563 2016-09-01 19:15 SVPWM.ccsproject
文件 22356 2017-06-09 22:02 SVPWM.cproject
目录 0 2019-04-14 17:16 SVPWM.launches
文件 10340 2018-12-11 18:13 SVPWM.launchesSVPWM.launch
文件 835 2016-08-24 17:05 SVPWM.project
目录 0 2019-04-14 17:16 SVPWM.settings
文件 62 2016-08-24 16:05 SVPWM.settingsorg.eclipse.cdt.codan.core.prefs
文件 220 2016-08-24 16:17 SVPWM.settingsorg.eclipse.cdt.core.prefs
文件 123 2016-08-24 16:05 SVPWM.settingsorg.eclipse.cdt.debug.core.prefs
文件 293 2016-08-24 16:16 SVPWM.settingsorg.eclipse.core.resources.prefs
文件 7270 2017-01-02 09:01 SVPWM28335_RAM_lnk.cmd
目录 0 2019-04-14 17:16 SVPWMDebug
文件 505 2018-12-11 18:12 SVPWMDebugccsObjs.opt
文件 35118 2018-12-11 18:12 SVPWMDebugmain.obj
文件 3895 2018-12-11 18:12 SVPWMDebugmain.pp
文件 5181 2018-12-11 18:12 SVPWMDebugmakefile
文件 250 2018-12-11 18:12 SVPWMDebugob
文件 2026 2018-12-11 18:12 SVPWMDebugsources.mk
目录 0 2019-04-14 17:16 SVPWMDebugsrc
文件 13485 2016-08-24 17:06 SVPWMDebugsrcDSP2833x_Adc.obj
文件 2810 2016-08-24 17:06 SVPWMDebugsrcDSP2833x_Adc.pp
文件 1534 2018-12-11 18:12 SVPWMDebugsrcDSP2833x_ADC_cal.obj
文件 1842 2018-12-11 18:12 SVPWMDebugsrcDSP2833x_CodeStartBranch.obj
文件 6334 2018-12-11 18:12 SVPWMDebugsrcDSP2833x_CpuTimers.obj
文件 3977 2018-12-11 18:12 SVPWMDebugsrcDSP2833x_CpuTimers.pp
文件 858 2018-12-11 18:12 SVPWMDebugsrcDSP2833x_CSMPasswords.obj
文件 1624 2016-08-24 17:06 SVPWMDebugsrcDSP2833x_DBGIER.obj
文件 32929 2018-12-11 18:12 SVPWMDebugsrcDSP2833x_DefaultIsr.obj
文件 4005 2018-12-11 18:12 SVPWMDebugsrcDSP2833x_DefaultIsr.pp
文件 1699 2016-08-24 17:06 SVPWMDebugsrcDSP2833x_DisInt.obj
............此处省略96个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)