svpwm源程序Word文档下载推荐.doc
- 文档编号:13162403
- 上传时间:2022-10-07
- 格式:DOC
- 页数:11
- 大小:48.50KB
svpwm源程序Word文档下载推荐.doc
《svpwm源程序Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《svpwm源程序Word文档下载推荐.doc(11页珍藏版)》请在冰豆网上搜索。
//below.
//EPWM1AisonGPIO0-------5脚
//EPWM1BisonGPIO1-------6脚
//EPWM2AisonGPIO2-------7脚
//EPWM2BisonGPIO3-------10脚
//EPWM3AisonGPIO4-------11脚
//EPWM3BisonGPIO5-------12脚
//$TIRelease:
DSP2833x/DSP2823xHeaderFilesV1.20$
//$ReleaseDate:
August1,2008$
#include"
DSP28x_Project.h"
//DeviceHeaderfileandExamplesIncludeFile
//Prototypestatementsforfunctionsfoundwithinthisfile.
voidInitEPwm1Example(void);
voidInitEPwm2Example(void);
voidInitEPwm3Example(void);
voidsvpwmGen(void);
interruptvoidsvpwm_isr(void);
volatilefloatUalpha,Ubeta;
volatilefloatA,B,C;
volatilefloatT0,T1,T2,T3,T4,T5,T6;
volatilefloatTaon,Tbon,Tcon;
floatUa,Ub,Uc;
floatTs;
inta,b,c;
intN=0,sector=0;
#defineTPRD800
#defineUdc800
voidmain(void)
{
//Step1.InitializeSystemControl:
//PLL,WatchDog,enablePeripheralClocks
//ThisexamplefunctionisfoundintheDSP2833x_SysCtrl.cfile.
InitSysCtrl();
//Step2.InitalizeGPIO:
//ThisexamplefunctionisfoundintheDSP2833x_Gpio.cfileand
//illustrateshowtosettheGPIOtoit'
sdefaultstate.
//InitGpio();
//Skippedforthisexample
//ForthiscasejustinitGPIOpinsforePWM1,ePWM2,ePWM3
//ThesefunctionsareintheDSP2833x_EPwm.cfile
InitEPwm1Gpio();
InitEPwm2Gpio();
InitEPwm3Gpio();
//Step3.ClearallinterruptsandinitializePIEvectortable:
//DisableCPUinterrupts
DINT;
//InitializethePIEcontrolregisterstotheirdefaultstate.
//ThedefaultstateisallPIEinterruptsdisabledandflags
//arecleared.
//ThisfunctionisfoundintheDSP2833x_PieCtrl.cfile.
InitPieCtrl();
//DisableCPUinterruptsandclearallCPUinterruptflags:
IER=0x0000;
IFR=0x0000;
//InitializethePIEvectortablewithpointerstotheshellInterrupt
//ServiceRoutines(ISR).
//Thiswillpopulatetheentiretable,eveniftheinterrupt
//isnotusedinthisexample.Thisisusefulfordebugpurposes.
//TheshellISRroutinesarefoundinDSP2833x_DefaultIsr.c.
//ThisfunctionisfoundinDSP2833x_PieVect.c.
InitPieVectTable();
//Interruptsthatareusedinthisexamplearere-mappedto
//ISRfunctionsfoundwithinthisfile.
EALLOW;
//ThisisneededtowritetoEALLOWprotectedregisters
PieVectTable.EPWM1_INT=&
svpwm_isr;
//PieVectTable.EPWM2_INT=&
epwm2_isr;
//PieVectTable.EPWM3_INT=&
epwm3_isr;
EDIS;
//ThisisneededtodisablewritetoEALLOWprotectedregisters
//Step4.InitializealltheDevicePeripherals:
//ThisfunctionisfoundinDSP2833x_InitPeripherals.c
//InitPeripherals();
//Notrequiredforthisexample
//Forthisexample,onlyinitializetheePWM
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=0;
InitEPwm1Example();
InitEPwm2Example();
InitEPwm3Example();
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=1;
//Step5.Userspecificcode,enableinterrupts:
//EnableCPUINT3whichisconnectedtoEPWM1-3INT:
IER|=M_INT3;
//EnableEPWMINTninthePIE:
Group3interrupt1-3
PieCtrlRegs.PIEIER3.bit.INTx1=1;
//PieCtrlRegs.PIEIER3.bit.INTx2=1;
//PieCtrlRegs.PIEIER3.bit.INTx3=1;
//EnableglobalInterruptsandhigherpriorityreal-timedebugevents:
EINT;
//EnableGlobalinterruptINTM
ERTM;
//EnableGlobalrealtimeinterruptDBGM
//Step6.IDLEloop.Justsitandloopforever(optional):
for(;
;
)
{
asm("
NOP"
);
}
}//main结束
//=======================================================================
interruptvoidsvpwm_isr(void)
svpwmGen();
//SetComparevalues
EPwm1Regs.CMPA.half.CMPA=Taon;
//adjustdutyforoutputEPWM1A
EPwm2Regs.CMPA.half.CMPA=Tbon;
//adjustdutyforoutputEPWM2A
EPwm3Regs.CMPA.half.CMPA=Tcon;
//adjustdutyforoutputEPWM3A
//ClearINTflagforthistimer
EPwm1Regs.ETCLR.bit.INT=1;
//Acknowledgethisinterrupttoreceivemoreinterruptsfromgroup3
PieCtrlRegs.PIEACK.all=PIEACK_GROUP3;
}
voidInitEPwm1Example()
//SetupTBCLK
EPwm1Regs.TBPRD=TPRD;
//TPRD=800,Period=1600TBCLKcounts
EPwm1Regs.TBPHS.half.TBPHS=0;
//SetPhaseregistertozero
EPwm1Regs.TBCTR=0x0000;
//
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- svpwm 源程序